patch 8.2.2107: Vim9: some errors not tested

Problem:    Vim9: some errors not tested.
Solution:   Add tests.  Fix getting the right error.
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 2f4c0d1..1b2daae 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -225,6 +225,45 @@
   END
 enddef
 
+def Test_assign_unpack()
+  var lines =<< trim END
+    var v1: number
+    var v2: number
+    [v1, v2] = [1, 2]
+    assert_equal(1, v1)
+    assert_equal(2, v2)
+  END
+  CheckDefAndScriptSuccess(lines)
+
+  lines =<< trim END
+      var v1: number
+      var v2: number
+      [v1, v2] = 
+  END
+  CheckDefFailure(lines, 'E1097:', 5)
+
+  lines =<< trim END
+      var v1: number
+      var v2: number
+      [v1, v2] = xxx
+  END
+  CheckDefFailure(lines, 'E1001:', 3)
+
+  lines =<< trim END
+      var v1: number
+      var v2: number
+      [v1, v2] = popup_clear()
+  END
+  CheckDefFailure(lines, 'E1031:', 3)
+
+  lines =<< trim END
+      var v1: number
+      var v2: number
+      [v1, v2] = ''
+  END
+  CheckDefFailure(lines, 'E1012: Type mismatch; expected list<any> but got string', 3)
+enddef
+
 def Test_assign_linebreak()
   var nr: number
   nr =
@@ -237,7 +276,7 @@
   assert_equal(12, nr)
   assert_equal(34, n2)
 
-  CheckDefFailure(["var x = #"], 'E1097:', 2)
+  CheckDefFailure(["var x = #"], 'E1097:', 3)
 enddef
 
 def Test_assign_index()
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index ed6c285..10230d5 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -188,8 +188,8 @@
   call CheckDefExecFailure(["var x = [] ? 'one' : 'two'"], 'E745:', 1)
   call CheckDefExecFailure(["var x = {} ? 'one' : 'two'"], 'E728:', 1)
 
-  call CheckDefExecFailure(["var x = false ? "], 'E1097:', 2)
-  call CheckDefExecFailure(["var x = false ? 'one' : "], 'E1097:', 2)
+  call CheckDefExecFailure(["var x = false ? "], 'E1097:', 3)
+  call CheckDefExecFailure(["var x = false ? 'one' : "], 'E1097:', 3)
 
   call CheckDefExecFailure(["var x = true ? xxx : 'foo'"], 'E1001:', 1)
   call CheckDefExecFailure(["var x = false ? 'foo' : xxx"], 'E1001:', 1)
@@ -352,7 +352,7 @@
   call CheckDefFailure(["var x = 1 ||2"], msg, 1)
   call CheckDefFailure(["var x = 1|| 2"], msg, 1)
 
-  call CheckDefFailure(["var x = false || "], 'E1097:', 2)
+  call CheckDefFailure(["var x = false || "], 'E1097:', 3)
 
   call CheckDefFailure(["var x = 1 || xxx"], 'E1001:', 1)
   call CheckDefFailure(["var x = [] || false"], 'E1012:', 1)
@@ -587,7 +587,7 @@
   CheckDefAndScriptSuccess(lines)
 
   CheckDefFailure(["var x = 'a' == xxx"], 'E1001:', 1)
-  CheckDefFailure(["var x = 'a' == "], 'E1097:', 2)
+  CheckDefFailure(["var x = 'a' == "], 'E1097:', 3)
 
   CheckDefExecFailure(['var items: any', 'eval 1', 'eval 2', 'if items == []', 'endif'], 'E691:', 4)
 enddef
@@ -1359,7 +1359,7 @@
   CheckDefAndScriptSuccess(lines)
 
   CheckDefFailure(["var x = 6 * xxx"], 'E1001:', 1)
-  CheckDefFailure(["var d = 6 * "], 'E1097:', 2)
+  CheckDefFailure(["var d = 6 * "], 'E1097:', 3)
 enddef
 
 def Test_expr6_vim9script()
@@ -1531,7 +1531,7 @@
   assert_equal(234, nr)
 
   CheckDefFailure(["var x = <nr>123"], 'E1010:', 1)
-  CheckDefFailure(["var x = <number>"], 'E1097:', 2)
+  CheckDefFailure(["var x = <number>"], 'E1097:', 3)
   CheckDefFailure(["var x = <number >123"], 'E1068:', 1)
   CheckDefFailure(["var x = <number 123"], 'E1104:', 1)
 enddef
@@ -1684,8 +1684,8 @@
   CheckDefExecFailure(["echo 1", "var x = [][0]", "echo 3"], 'E684:', 2)
 
   CheckDefExecFailure(["var x = g:list_mixed['xx']"], 'E1012:', 1)
-  CheckDefFailure(["var x = g:list_mixed["], 'E1097:', 2)
-  CheckDefFailure(["var x = g:list_mixed[0"], 'E1097:', 2)
+  CheckDefFailure(["var x = g:list_mixed["], 'E1097:', 3)
+  CheckDefFailure(["var x = g:list_mixed[0"], 'E1097:', 3)
   CheckDefExecFailure(["var x = g:list_empty[3]"], 'E684:', 1)
   CheckDefExecFailure(["var l: list<number> = [234, 'x']"], 'E1012:', 1)
   CheckDefExecFailure(["var l: list<number> = ['x', 234]"], 'E1012:', 1)
@@ -1948,8 +1948,8 @@
   CheckDefAndScriptSuccess(lines)
  
   # legacy syntax doesn't work
-  CheckDefFailure(["var x = #{key: 8}"], 'E1097:', 2)
-  CheckDefFailure(["var x = 'a' .. #{a: 1}"], 'E1097:', 2)
+  CheckDefFailure(["var x = #{key: 8}"], 'E1097:', 3)
+  CheckDefFailure(["var x = 'a' .. #{a: 1}"], 'E1097:', 3)
 
   CheckDefFailure(["var x = {a:8}"], 'E1069:', 1)
   CheckDefFailure(["var x = {a : 8}"], 'E1059:', 1)
@@ -2609,7 +2609,7 @@
   lines =<< trim END
       var d = 'asdf'[1:
   END
-  CheckDefFailure(lines, 'E1097:', 2)
+  CheckDefFailure(lines, 'E1097:', 3)
   lines =<< trim END
       var d = 'asdf'[1:xxx]
   END
@@ -2617,7 +2617,7 @@
   lines =<< trim END
       var d = 'asdf'[1:2
   END
-  CheckDefFailure(lines, 'E1097:', 2)
+  CheckDefFailure(lines, 'E1097:', 3)
   lines =<< trim END
       var d = 'asdf'[1:2
       echo d