patch 8.2.2687: Vim9: cannot use "const" for global variable in :def function
Problem: Vim9: cannot use "const" for global variable in :def function.
Solution: Do allow using :const for a global variable. (closes #8030)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 05e65e1..41ec7c7 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1277,6 +1277,13 @@
g:FLIST[0] = 22
assert_equal([22], g:FLIST)
+ def SetGlobalConst()
+ const g:globConst = 123
+ enddef
+ SetGlobalConst()
+ assert_equal(123, g:globConst)
+ assert_true(islocked('g:globConst'))
+
const w:FOO: number = 46
assert_equal(46, w:FOO)
const w:FOOS = 'wfoos'
@@ -1341,6 +1348,17 @@
lines =<< trim END
vim9script
+ def SetGlobalConst()
+ const g:globConst = 123
+ enddef
+ SetGlobalConst()
+ g:globConst = 234
+ END
+ CheckScriptFailure(lines, 'E741: Value is locked: globConst')
+ unlet g:globConst
+
+ lines =<< trim END
+ vim9script
const cdict: dict<string> = {}
def Change()
cdict.foo = 'foo'