diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-27 21:27:40 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-27 21:27:40 +0200 |
commit | 06f9c6940a88d132c85eb2a1b5034fa7653518ce (patch) | |
tree | 5d40f32db31b95ebad2033e1fa10d3031d787e6e | |
parent | 6c542f77eba73a95447f285149b3fcb011aa9675 (diff) | |
download | vim-git-06f9c6940a88d132c85eb2a1b5034fa7653518ce.tar.gz |
patch 8.2.1764: Vim9: no error when assigning to script var with wrong typev8.2.1764
Problem: Vim9: no error when assigning to script var with wrong type.
Solution: Fix off-by-one error. (closes #7028)
-rw-r--r-- | src/testdir/test_vim9_assign.vim | 10 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 2 |
3 files changed, 13 insertions, 1 deletions
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 @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1764, +/**/ 1763, /**/ 1762, 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 = |