0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.2.1518: Vim9: cannot assign to local option

Problem:    Vim9: cannot assign to local option.
Solution:   Skip over "&l:" and "&g:". (closes #6749)
This commit is contained in:
Bram Moolenaar
2020-08-23 19:34:48 +02:00
parent 6c53fca023
commit 2e80095501
6 changed files with 51 additions and 18 deletions

View File

@@ -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'