diff src/testdir/test_vim9_script.vim @ 22274:1634ca41e4d3 v8.2.1686

patch 8.2.1686: Vim9: "const!" not sufficiently tested Commit: https://github.com/vim/vim/commit/71abe4828974af495602ffaff63cf643a16de84b Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 14 22:28:30 2020 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Mon, 14 Sep 2020 22:30:03 +0200
parents eb1f5f618c75
children 6b385c2b9ff5
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -831,6 +831,24 @@ def Test_const()
     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