patch 8.2.1674: Vim9: internal error when using variable that was not set

Problem:    Vim9: internal error when using variable that was not set.
Solution:   Give a meaningful error. (closes #6937)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index bd0a5c8..27dbd30 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -3308,6 +3308,14 @@
   delete('Xdidit')
 enddef
 
+def Test_unset_any_variable()
+  let lines =<< trim END
+    let var: any
+    assert_equal(0, var)
+  END
+  CheckDefAndScriptSuccess(lines)
+enddef
+
 " Keep this last, it messes up highlighting.
 def Test_substitute_cmd()
   new
diff --git a/src/version.c b/src/version.c
index f30daf8..503c6ea 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1674,
+/**/
     1673,
 /**/
     1672,
diff --git a/src/vim9script.c b/src/vim9script.c
index 4816315..74d0579 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -548,7 +548,11 @@
 
     // Create the variable with 0/NULL value.
     CLEAR_FIELD(init_tv);
-    init_tv.v_type = type->tt_type;
+    if (type->tt_type == VAR_ANY)
+	// A variable of type "any" is not possible, just use zero instead
+	init_tv.v_type = VAR_NUMBER;
+    else
+	init_tv.v_type = type->tt_type;
     set_var_const(name, type, &init_tv, FALSE, 0);
 
     vim_free(name);