Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 21937:b931df03adcc v8.2.1518
patch 8.2.1518: Vim9: cannot assign to local option
Commit: https://github.com/vim/vim/commit/2e80095501238e0c6b702ac7cdfa2e2b763dba28
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 23 19:34:48 2020 +0200
patch 8.2.1518: Vim9: cannot assign to local option
Problem: Vim9: cannot assign to local option.
Solution: Skip over "&l:" and "&g:". (closes https://github.com/vim/vim/issues/6749)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 23 Aug 2020 19:45:03 +0200 |
parents | 5edd776d886d |
children | 8350bdbdbb28 |
comparison
equal
deleted
inserted
replaced
21936:8303e21ae158 | 21937:b931df03adcc |
---|---|
108 | 108 |
109 CheckDefFailure(['let nr: number = 200', 'nr /= 5.0'], 'E1012:') | 109 CheckDefFailure(['let nr: number = 200', 'nr /= 5.0'], 'E1012:') |
110 endif | 110 endif |
111 | 111 |
112 lines =<< trim END | 112 lines =<< trim END |
113 vim9script | |
114 &ts = 6 | 113 &ts = 6 |
115 &ts += 3 | 114 &ts += 3 |
116 assert_equal(9, &ts) | 115 assert_equal(9, &ts) |
117 END | 116 |
118 CheckScriptSuccess(lines) | 117 &l:ts = 6 |
118 assert_equal(6, &ts) | |
119 &l:ts += 2 | |
120 assert_equal(8, &ts) | |
121 | |
122 &g:ts = 6 | |
123 assert_equal(6, &g:ts) | |
124 &g:ts += 2 | |
125 assert_equal(8, &g:ts) | |
126 END | |
127 CheckDefAndScriptSuccess(lines) | |
119 | 128 |
120 CheckDefFailure(['¬ex += 3'], 'E113:') | 129 CheckDefFailure(['¬ex += 3'], 'E113:') |
121 CheckDefFailure(['&ts ..= "xxx"'], 'E1019:') | 130 CheckDefFailure(['&ts ..= "xxx"'], 'E1019:') |
122 CheckDefFailure(['&ts = [7]'], 'E1012:') | 131 CheckDefFailure(['&ts = [7]'], 'E1012:') |
123 CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list') | 132 CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list') |
161 $SOME_ENV_VAR ..= 'more' | 170 $SOME_ENV_VAR ..= 'more' |
162 assert_equal('somemore', $SOME_ENV_VAR) | 171 assert_equal('somemore', $SOME_ENV_VAR) |
163 call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:') | 172 call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:') |
164 call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:') | 173 call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:') |
165 | 174 |
166 @a = 'areg' | |
167 @a ..= 'add' | |
168 assert_equal('aregadd', @a) | |
169 call CheckDefFailure(['@a += "more"'], 'E1051:') | |
170 call CheckDefFailure(['@a += 123'], 'E1012:') | |
171 | |
172 lines =<< trim END | 175 lines =<< trim END |
173 vim9script | |
174 @c = 'areg' | 176 @c = 'areg' |
175 @c ..= 'add' | 177 @c ..= 'add' |
176 assert_equal('aregadd', @c) | 178 assert_equal('aregadd', @c) |
177 END | 179 END |
178 call CheckScriptSuccess(lines) | 180 CheckDefAndScriptSuccess(lines) |
181 | |
182 call CheckDefFailure(['@a += "more"'], 'E1051:') | |
183 call CheckDefFailure(['@a += 123'], 'E1012:') | |
179 | 184 |
180 v:errmsg = 'none' | 185 v:errmsg = 'none' |
181 v:errmsg ..= 'again' | 186 v:errmsg ..= 'again' |
182 assert_equal('noneagain', v:errmsg) | 187 assert_equal('noneagain', v:errmsg) |
183 call CheckDefFailure(['v:errmsg += "more"'], 'E1051:') | 188 call CheckDefFailure(['v:errmsg += "more"'], 'E1051:') |