diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-14 21:39:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-14 21:39:44 +0200 |
commit | 0b4c66c67a083f25816b9cdb8e76a41e02d9f560 (patch) | |
tree | b371efc32dbbbda792f5177e1269c0eb7f2a3d64 /src/testdir/test_vim9_script.vim | |
parent | efd5d8a967ba80f9e2826c35be98344d8f00af77 (diff) | |
download | vim-git-0b4c66c67a083f25816b9cdb8e76a41e02d9f560.tar.gz |
patch 8.2.1685: Vim9: cannot declare a constant valuev8.2.1685
Problem: Vim9: cannot declare a constant value.
Solution: Introduce ":const!".
Diffstat (limited to 'src/testdir/test_vim9_script.vim')
-rw-r--r-- | src/testdir/test_vim9_script.vim | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 63581818e..904ee634d 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -828,10 +828,50 @@ def Test_const() let lines =<< trim END const list = [1, 2, 3] list[0] = 4 + list->assert_equal([4, 2, 3]) + const! other = [5, 6, 7] + other->assert_equal([5, 6, 7]) END CheckDefAndScriptSuccess(lines) enddef +def Test_const_bang() + let lines =<< trim END + const! var = 234 + var = 99 + END + CheckDefExecFailure(lines, 'E1018:', 2) + CheckScriptFailure(['vim9script'] + lines, 'E46:', 3) + + lines =<< trim END + const! ll = [2, 3, 4] + ll[0] = 99 + END + CheckDefExecFailure(lines, 'E1119:', 2) + CheckScriptFailure(['vim9script'] + lines, 'E741:', 3) + + lines =<< trim END + const! ll = [2, 3, 4] + ll[3] = 99 + END + CheckDefExecFailure(lines, 'E1118:', 2) + CheckScriptFailure(['vim9script'] + lines, 'E684:', 3) + + lines =<< trim END + const! dd = #{one: 1, two: 2} + dd["one"] = 99 + END + CheckDefExecFailure(lines, 'E1121:', 2) + CheckScriptFailure(['vim9script'] + lines, 'E741:', 3) + + lines =<< trim END + const! dd = #{one: 1, two: 2} + dd["three"] = 99 + END + CheckDefExecFailure(lines, 'E1120:') + CheckScriptFailure(['vim9script'] + lines, 'E741:', 3) +enddef + def Test_range_no_colon() CheckDefFailure(['%s/a/b/'], 'E1050:') CheckDefFailure(['+ s/a/b/'], 'E1050:') |