summaryrefslogtreecommitdiff
path: root/src/testdir/test_vim9_script.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-14 21:39:44 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-14 21:39:44 +0200
commit0b4c66c67a083f25816b9cdb8e76a41e02d9f560 (patch)
treeb371efc32dbbbda792f5177e1269c0eb7f2a3d64 /src/testdir/test_vim9_script.vim
parentefd5d8a967ba80f9e2826c35be98344d8f00af77 (diff)
downloadvim-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.vim40
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:')