From: Bram Moolenaar Date: Sun, 27 Sep 2020 19:27:40 +0000 (+0200) Subject: patch 8.2.1764: Vim9: no error when assigning to script var with wrong type X-Git-Tag: v8.2.1764 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06f9c6940a88d132c85eb2a1b5034fa7653518ce;p=vim patch 8.2.1764: Vim9: no error when assigning to script var with wrong type Problem: Vim9: no error when assigning to script var with wrong type. Solution: Fix off-by-one error. (closes #7028) --- diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 5d6dec110..cd3ba8ce6 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -567,6 +567,16 @@ def Test_assignment_vim9script() assert_equal(44, t) END CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + var n: number + def Func() + n = 'string' + enddef + defcompile + END + CheckScriptFailure(lines, 'E1012: Type mismatch; expected number but got string') enddef def Mess(): string diff --git a/src/version.c b/src/version.c index 60ab7d1d6..4b459f2a6 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1764, /**/ 1763, /**/ diff --git a/src/vim9compile.c b/src/vim9compile.c index e4f3a906e..830e8bb9b 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -4899,7 +4899,7 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx) { scriptvar_idx = get_script_item_idx(scriptvar_sid, rawname, TRUE); - if (scriptvar_idx > 0) + if (scriptvar_idx >= 0) { scriptitem_T *si = SCRIPT_ITEM(scriptvar_sid); svar_T *sv =