diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-06-16 15:41:58 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-06-16 15:41:58 +0200 |
commit | 1c196e7b1742c1a50ce0d74190721acaad087f81 (patch) | |
tree | 863a9372d5d7800f076cd2f00c371394a09124e6 | |
parent | dc2ce58b5ac72e2af765385eb426660104816344 (diff) |
patch 8.1.1554: docs and tests for :const can be improvedv8.1.1554
Problem: Docs and tests for :const can be improved.
Solution: Improve documentation, add a few more tests. (Ryuichi Hayashida,
closes #4551)
-rw-r--r-- | runtime/doc/eval.txt | 9 | ||||
-rw-r--r-- | src/testdir/test_const.vim | 26 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 34 insertions, 3 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 83a89957f2..549d27ba9a 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -11619,10 +11619,9 @@ text... If the system does not support deleting an environment variable, it is made empty. - *:cons* *:const* *E996* + *:cons* *:const* :cons[t] {var-name} = {expr1} :cons[t] [{name1}, {name2}, ...] = {expr1} -:cons[t] [{name1}, {name2}, ...] .= {expr1} :cons[t] [{name}, ..., ; {lastname}] = {expr1} :cons[t] {var-name} =<< [trim] {marker} text... @@ -11641,7 +11640,11 @@ text... |:const| does not allow to for changing a variable. > :let x = 1 :const x = 2 " Error! -< +< *E996* + Note that environment variables, option values and + register values cannot be used here, since they cannot + be locked. + :lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv* Lock the internal variable {name}. Locking means that it can no longer be changed (until it is unlocked). diff --git a/src/testdir/test_const.vim b/src/testdir/test_const.vim index bb47e5e5fd..d4dccb1b83 100644 --- a/src/testdir/test_const.vim +++ b/src/testdir/test_const.vim @@ -21,6 +21,21 @@ func Test_define_var_with_lock() hello EOS + call assert_true(exists('i')) + call assert_true(exists('f')) + call assert_true(exists('s')) + call assert_true(exists('F')) + call assert_true(exists('l')) + call assert_true(exists('d')) + if has('channel') + call assert_true(exists('j')) + call assert_true(exists('c')) + endif + call assert_true(exists('b')) + call assert_true(exists('n')) + call assert_true(exists('bl')) + call assert_true(exists('here')) + call assert_fails('let i = 1', 'E741:') call assert_fails('let f = 1.1', 'E741:') call assert_fails('let s = "vim"', 'E741:') @@ -218,6 +233,17 @@ func Test_const_with_special_variables() call assert_fails('const &g:encoding = "utf-8"', 'E996:') endfunc +func Test_const_with_eval_name() + let s = 'foo' + + " eval name with :const should work + const abc_{s} = 1 + const {s}{s} = 1 + + let s2 = 'abc_foo' + call assert_fails('const {s2} = "bar"', 'E995:') +endfunc + func Test_lock_depth_is_1() const l = [1, 2, 3] const d = {'foo': 10} diff --git a/src/version.c b/src/version.c index aa11b7ebc4..fcdf562d47 100644 --- a/src/version.c +++ b/src/version.c @@ -778,6 +778,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1554, +/**/ 1553, /**/ 1552, |