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:
@@ -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(['¬ex += 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'
|
||||
|
Reference in New Issue
Block a user