patch 8.2.1686: Vim9: "const!" not sufficiently tested

Problem:    Vim9: "const!" not sufficiently tested.
Solution:   Add a few more test cases.  Fix type checking.
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 904ee63..936c7dd 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -831,6 +831,24 @@
     list->assert_equal([4, 2, 3])
     const! other = [5, 6, 7]
     other->assert_equal([5, 6, 7])
+
+    let varlist = [7, 8]
+    const! constlist = [1, varlist, 3]
+    varlist[0] = 77
+    # TODO: does not work yet
+    # constlist[1][1] = 88
+    let cl = constlist[1]
+    cl[1] = 88
+    constlist->assert_equal([1, [77, 88], 3])
+
+    let vardict = #{five: 5, six: 6}
+    const! constdict = #{one: 1, two: vardict, three: 3}
+    vardict['five'] = 55
+    # TODO: does not work yet
+    # constdict['two']['six'] = 66
+    let cd = constdict['two']
+    cd['six'] = 66
+    constdict->assert_equal(#{one: 1, two: #{five: 55, six: 66}, three: 3})
   END
   CheckDefAndScriptSuccess(lines)
 enddef
diff --git a/src/version.c b/src/version.c
index f958df9..a0a6983 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1686,
+/**/
     1685,
 /**/
     1684,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 103e696..e8a3a21 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -5066,12 +5066,13 @@
 		    {
 			type_T *use_type = lvar->lv_type;
 
-			// without operator type is here, otherwise below
+			// without operator check type here, otherwise below
 			if (has_index)
 			{
 			    use_type = use_type->tt_member;
 			    if (use_type == NULL)
-				use_type = &t_void;
+				// could be indexing "any"
+				use_type = &t_any;
 			}
 			if (need_type(stacktype, use_type, -1, cctx, FALSE)
 								       == FAIL)