Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 20871:65d9189d4dca v8.2.0987
patch 8.2.0987: Vim9: cannot assign to [var; var]
Commit: https://github.com/vim/vim/commit/9af78769eeae0318e07aa8b6af4d6e2244481ca7
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 16 11:34:42 2020 +0200
patch 8.2.0987: Vim9: cannot assign to [var; var]
Problem: Vim9: cannot assign to [var; var].
Solution: Assign rest of items to a list.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 16 Jun 2020 11:45:04 +0200 |
parents | 876e16c48bd1 |
children | 58137dbee8da |
comparison
equal
deleted
inserted
replaced
20870:6203fd2cfb51 | 20871:65d9189d4dca |
---|---|
224 enddef | 224 enddef |
225 | 225 |
226 def Test_assignment_var_list() | 226 def Test_assignment_var_list() |
227 let v1: string | 227 let v1: string |
228 let v2: string | 228 let v2: string |
229 let vrem: list<string> | |
230 [v1] = ['aaa'] | |
231 assert_equal('aaa', v1) | |
232 | |
229 [v1, v2] = ['one', 'two'] | 233 [v1, v2] = ['one', 'two'] |
230 assert_equal('one', v1) | 234 assert_equal('one', v1) |
231 assert_equal('two', v2) | 235 assert_equal('two', v2) |
236 | |
237 [v1, v2; vrem] = ['one', 'two'] | |
238 assert_equal('one', v1) | |
239 assert_equal('two', v2) | |
240 assert_equal([], vrem) | |
241 | |
242 [v1, v2; vrem] = ['one', 'two', 'three'] | |
243 assert_equal('one', v1) | |
244 assert_equal('two', v2) | |
245 assert_equal(['three'], vrem) | |
232 enddef | 246 enddef |
233 | 247 |
234 def Mess(): string | 248 def Mess(): string |
235 v:foldstart = 123 | 249 v:foldstart = 123 |
236 return 'xxx' | 250 return 'xxx' |
242 call CheckDefFailure(['let var= 234'], 'E1004:') | 256 call CheckDefFailure(['let var= 234'], 'E1004:') |
243 | 257 |
244 call CheckDefFailure(['let true = 1'], 'E1034:') | 258 call CheckDefFailure(['let true = 1'], 'E1034:') |
245 call CheckDefFailure(['let false = 1'], 'E1034:') | 259 call CheckDefFailure(['let false = 1'], 'E1034:') |
246 | 260 |
247 call CheckDefFailure(['let [a; b; c] = g:list'], 'E452:') | 261 call CheckDefFailure(['[a; b; c] = g:list'], 'E452:') |
262 call CheckDefExecFailure(['let a: number', | |
263 '[a] = test_null_list()'], 'E1093:') | |
264 call CheckDefExecFailure(['let a: number', | |
265 '[a] = []'], 'E1093:') | |
266 call CheckDefExecFailure(['let x: number', | |
267 'let y: number', | |
268 '[x, y] = [1]'], 'E1093:') | |
269 call CheckDefExecFailure(['let x: number', | |
270 'let y: number', | |
271 'let z: list<number>', | |
272 '[x, y; z] = [1]'], 'E1093:') | |
248 | 273 |
249 call CheckDefFailure(['let somevar'], "E1022:") | 274 call CheckDefFailure(['let somevar'], "E1022:") |
250 call CheckDefFailure(['let &option'], 'E1052:') | 275 call CheckDefFailure(['let &option'], 'E1052:') |
251 call CheckDefFailure(['&g:option = 5'], 'E113:') | 276 call CheckDefFailure(['&g:option = 5'], 'E113:') |
252 | 277 |