summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-23 19:34:48 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-23 19:34:48 +0200
commit2e80095501238e0c6b702ac7cdfa2e2b763dba28 (patch)
treeb4768ed6a42285874dff041b2e18d1e22d9bbd98 /src/testdir
parent6c53fca02301ff871cddc1c74c388e23e53a424a (diff)
downloadvim-git-2e80095501238e0c6b702ac7cdfa2e2b763dba28.tar.gz
patch 8.2.1518: Vim9: cannot assign to local optionv8.2.1518
Problem: Vim9: cannot assign to local option. Solution: Skip over "&l:" and "&g:". (closes #6749)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/test_vim9_script.vim25
-rw-r--r--src/testdir/vim9.vim5
2 files changed, 20 insertions, 10 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 6417d21ee..45384d1d8 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -110,12 +110,21 @@ def Test_assignment()
endif
lines =<< trim END
- vim9script
&ts = 6
&ts += 3
assert_equal(9, &ts)
+
+ &l:ts = 6
+ assert_equal(6, &ts)
+ &l:ts += 2
+ assert_equal(8, &ts)
+
+ &g:ts = 6
+ assert_equal(6, &g:ts)
+ &g:ts += 2
+ assert_equal(8, &g:ts)
END
- CheckScriptSuccess(lines)
+ CheckDefAndScriptSuccess(lines)
CheckDefFailure(['&notex += 3'], 'E113:')
CheckDefFailure(['&ts ..= "xxx"'], 'E1019:')
@@ -163,19 +172,15 @@ def Test_assignment()
call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:')
call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:')
- @a = 'areg'
- @a ..= 'add'
- assert_equal('aregadd', @a)
- call CheckDefFailure(['@a += "more"'], 'E1051:')
- call CheckDefFailure(['@a += 123'], 'E1012:')
-
lines =<< trim END
- vim9script
@c = 'areg'
@c ..= 'add'
assert_equal('aregadd', @c)
END
- call CheckScriptSuccess(lines)
+ CheckDefAndScriptSuccess(lines)
+
+ call CheckDefFailure(['@a += "more"'], 'E1051:')
+ call CheckDefFailure(['@a += 123'], 'E1012:')
v:errmsg = 'none'
v:errmsg ..= 'again'
diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim
index 2f92cf954..7fbe4a5ed 100644
--- a/src/testdir/vim9.vim
+++ b/src/testdir/vim9.vim
@@ -41,6 +41,11 @@ def CheckScriptSuccess(lines: list<string>)
delete('Xdef')
enddef
+def CheckDefAndScriptSuccess(lines: list<string>)
+ CheckDefSuccess(lines)
+ CheckScriptSuccess(['vim9script'] + lines)
+enddef
+
" Check that a command fails both when used in a :def function and when used
" in Vim9 script.
def CheckScriptAndDefFailure(lines: list<string>, error: string, lnum = -3)