Mercurial > vim
diff src/testdir/test_vim9_assign.vim @ 23297:40f1d3f0c53e v8.2.2194
patch 8.2.2194: Vim9: cannot use :const or :final at the script level
Commit: https://github.com/vim/vim/commit/89b474dd4f0de878b4c48eeb9e223f0c22ee1442
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Dec 22 21:19:39 2020 +0100
patch 8.2.2194: Vim9: cannot use :const or :final at the script level
Problem: Vim9: cannot use :const or :final at the script level.
Solution: Support using :const and :final. (closes https://github.com/vim/vim/issues/7526)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 22 Dec 2020 21:30:04 +0100 |
parents | 00f7cd9b6033 |
children | 9c5275b1c763 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -1127,6 +1127,30 @@ def Test_var_declaration() const FOO: number = 123 assert_equal(123, FOO) + const FOOS = 'foos' + assert_equal('foos', FOOS) + final FLIST = [1] + assert_equal([1], FLIST) + FLIST[0] = 11 + assert_equal([11], FLIST) + + const g:FOO: number = 321 + assert_equal(321, g:FOO) + const g:FOOS = 'gfoos' + assert_equal('gfoos', g:FOOS) + final g:FLIST = [2] + assert_equal([2], g:FLIST) + g:FLIST[0] = 22 + assert_equal([22], g:FLIST) + + const w:FOO: number = 46 + assert_equal(46, w:FOO) + const w:FOOS = 'wfoos' + assert_equal('wfoos', w:FOOS) + final w:FLIST = [3] + assert_equal([3], w:FLIST) + w:FLIST[0] = 33 + assert_equal([33], w:FLIST) var s:other: number other = 1234 @@ -1150,6 +1174,12 @@ def Test_var_declaration() unlet g:var_test unlet g:var_prefixed unlet g:other_var + unlet g:FOO + unlet g:FOOS + unlet g:FLIST + unlet w:FOO + unlet w:FOOS + unlet w:FLIST enddef def Test_var_declaration_fails() @@ -1161,6 +1191,22 @@ def Test_var_declaration_fails() lines =<< trim END vim9script + const g:constvar = 'string' + g:constvar = 'xx' + END + CheckScriptFailure(lines, 'E741:') + unlet g:constvar + + lines =<< trim END + vim9script + final w:finalvar = [9] + w:finalvar = [8] + END + CheckScriptFailure(lines, 'E1122:') + unlet w:finalvar + + lines =<< trim END + vim9script const var: string END CheckScriptFailure(lines, 'E1021:')