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 5d6dec1..cd3ba8c 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -567,6 +567,16 @@
     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 60ab7d1..4b459f2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 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 e4f3a90..830e8bb 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -4899,7 +4899,7 @@
 			{
 			    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 =