summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-06-16 15:41:58 +0200
committerBram Moolenaar <Bram@vim.org>2019-06-16 15:41:58 +0200
commit1c196e7b1742c1a50ce0d74190721acaad087f81 (patch)
tree863a9372d5d7800f076cd2f00c371394a09124e6
parentdc2ce58b5ac72e2af765385eb426660104816344 (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.txt9
-rw-r--r--src/testdir/test_const.vim26
-rw-r--r--src/version.c2
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,