patch 8.2.3682: Vim9: assigning to a script variable drops the type

Problem:    Vim9: assigning to a script variable drops the required type.
Solution:   Lookup the type of the variable and use it. (closes #9219)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 0d07e07..df8f486 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -322,6 +322,16 @@
   CheckDefAndScriptSuccess(lines)
 enddef
 
+def Test_assign_keep_type()
+  var lines =<< trim END
+      vim9script
+      var l: list<number> = [123]
+      l = [123]
+      l->add('string')
+  END
+  CheckScriptFailure(lines, 'E1012:', 4)
+enddef
+
 def Test_assign_unpack()
   var lines =<< trim END
     var v1: number