comparison src/testdir/test_vim9_builtin.vim @ 23072:4b398a229b0b v8.2.2082

patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax Commit: https://github.com/vim/vim/commit/e0de171ecd2ff7acd56deda2cf81f0d13a69c803 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 2 17:36:54 2020 +0100 patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax Problem: Vim9: can still use the depricated #{} dict syntax. Solution: Remove support for #{} in Vim9 script. (closes https://github.com/vim/vim/issues/7406, closes https://github.com/vim/vim/issues/7405)
author Bram Moolenaar <Bram@vim.org>
date Wed, 02 Dec 2020 17:45:05 +0100
parents 00b0275ffe7f
children 1013a97d5dc0
comparison
equal deleted inserted replaced
23071:20dac5998fa6 23072:4b398a229b0b
30 def RetFloat(): float 30 def RetFloat(): float
31 return ceil(1.456) 31 return ceil(1.456)
32 enddef 32 enddef
33 33
34 def RetListAny(): list<any> 34 def RetListAny(): list<any>
35 return items({'k': 'v'}) 35 return items({k: 'v'})
36 enddef 36 enddef
37 37
38 def RetListString(): list<string> 38 def RetListString(): list<string>
39 return split('a:b:c', ':') 39 return split('a:b:c', ':')
40 enddef 40 enddef
195 assert_equal([1, 2, 3], extend([1, 2], [3])) 195 assert_equal([1, 2, 3], extend([1, 2], [3]))
196 assert_equal([3, 1, 2], extend([1, 2], [3], 0)) 196 assert_equal([3, 1, 2], extend([1, 2], [3], 0))
197 assert_equal([1, 3, 2], extend([1, 2], [3], 1)) 197 assert_equal([1, 3, 2], extend([1, 2], [3], 1))
198 assert_equal([1, 3, 2], extend([1, 2], [3], s:number_one)) 198 assert_equal([1, 3, 2], extend([1, 2], [3], s:number_one))
199 199
200 assert_equal(#{a: 1, b: 2, c: 3}, extend(#{a: 1, b: 2}, #{c: 3})) 200 assert_equal({a: 1, b: 2, c: 3}, extend({a: 1, b: 2}, {c: 3}))
201 assert_equal(#{a: 1, b: 4}, extend(#{a: 1, b: 2}, #{b: 4})) 201 assert_equal({a: 1, b: 4}, extend({a: 1, b: 2}, {b: 4}))
202 assert_equal(#{a: 1, b: 2}, extend(#{a: 1, b: 2}, #{b: 4}, 'keep')) 202 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, 'keep'))
203 assert_equal(#{a: 1, b: 2}, extend(#{a: 1, b: 2}, #{b: 4}, s:string_keep)) 203 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, s:string_keep))
204 204
205 var res: list<dict<any>> 205 var res: list<dict<any>>
206 extend(res, map([1, 2], {_, v -> {}})) 206 extend(res, map([1, 2], {_, v -> {}}))
207 assert_equal([{}, {}], res) 207 assert_equal([{}, {}], res)
208 208
209 CheckDefFailure(['extend([1, 2], 3)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number') 209 CheckDefFailure(['extend([1, 2], 3)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number')
210 CheckDefFailure(['extend([1, 2], ["x"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 210 CheckDefFailure(['extend([1, 2], ["x"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>')
211 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string') 211 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string')
212 212
213 CheckDefFailure(['extend(#{a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number') 213 CheckDefFailure(['extend({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number')
214 CheckDefFailure(['extend(#{a: 1}, #{b: "x"})'], 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>') 214 CheckDefFailure(['extend({a: 1}, {b: "x"})'], 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>')
215 CheckDefFailure(['extend(#{a: 1}, #{b: 2}, 1)'], 'E1013: Argument 3: type mismatch, expected string but got number') 215 CheckDefFailure(['extend({a: 1}, {b: 2}, 1)'], 'E1013: Argument 3: type mismatch, expected string but got number')
216 enddef 216 enddef
217 217
218 def Test_extend_return_type() 218 def Test_extend_return_type()
219 var l = extend([1, 2], [3]) 219 var l = extend([1, 2], [3])
220 var res = 0 220 var res = 0
252 getbufinfo('%')->assert_equal(bufinfo) 252 getbufinfo('%')->assert_equal(bufinfo)
253 253
254 edit Xtestfile1 254 edit Xtestfile1
255 hide edit Xtestfile2 255 hide edit Xtestfile2
256 hide enew 256 hide enew
257 getbufinfo(#{bufloaded: true, buflisted: true, bufmodified: false}) 257 getbufinfo({bufloaded: true, buflisted: true, bufmodified: false})
258 ->len()->assert_equal(3) 258 ->len()->assert_equal(3)
259 bwipe Xtestfile1 Xtestfile2 259 bwipe Xtestfile1 Xtestfile2
260 enddef 260 enddef
261 261
262 def Test_getbufline() 262 def Test_getbufline()
295 295
296 def Test_getloclist_return_type() 296 def Test_getloclist_return_type()
297 var l = getloclist(1) 297 var l = getloclist(1)
298 l->assert_equal([]) 298 l->assert_equal([])
299 299
300 var d = getloclist(1, #{items: 0}) 300 var d = getloclist(1, {items: 0})
301 d->assert_equal(#{items: []}) 301 d->assert_equal({items: []})
302 enddef 302 enddef
303 303
304 def Test_getqflist_return_type() 304 def Test_getqflist_return_type()
305 var l = getqflist() 305 var l = getqflist()
306 l->assert_equal([]) 306 l->assert_equal([])
307 307
308 var d = getqflist(#{items: 0}) 308 var d = getqflist({items: 0})
309 d->assert_equal(#{items: []}) 309 d->assert_equal({items: []})
310 enddef 310 enddef
311 311
312 def Test_getreg() 312 def Test_getreg()
313 var lines = ['aaa', 'bbb', 'ccc'] 313 var lines = ['aaa', 'bbb', 'ccc']
314 setreg('a', lines) 314 setreg('a', lines)
366 CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 1) 366 CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 1)
367 CheckDefFailure(['insert([2, 3], 1, "x")'], 'E1013: Argument 3: type mismatch, expected number but got string', 1) 367 CheckDefFailure(['insert([2, 3], 1, "x")'], 'E1013: Argument 3: type mismatch, expected number but got string', 1)
368 enddef 368 enddef
369 369
370 def Test_keys_return_type() 370 def Test_keys_return_type()
371 const var: list<string> = #{a: 1, b: 2}->keys() 371 const var: list<string> = {a: 1, b: 2}->keys()
372 var->assert_equal(['a', 'b']) 372 var->assert_equal(['a', 'b'])
373 enddef 373 enddef
374 374
375 def Test_list2str_str2list_utf8() 375 def Test_list2str_str2list_utf8()
376 var s = "\u3042\u3044" 376 var s = "\u3042\u3044"
386 enddef 386 enddef
387 387
388 def Test_maparg() 388 def Test_maparg()
389 var lnum = str2nr(expand('<sflnum>')) 389 var lnum = str2nr(expand('<sflnum>'))
390 map foo bar 390 map foo bar
391 maparg('foo', '', false, true)->assert_equal(#{ 391 maparg('foo', '', false, true)->assert_equal({
392 lnum: lnum + 1, 392 lnum: lnum + 1,
393 script: 0, 393 script: 0,
394 mode: ' ', 394 mode: ' ',
395 silent: 0, 395 silent: 0,
396 noremap: 0, 396 noremap: 0,
426 eval expand('sautest')->readdir({e -> e[0] !=# '.'}) 426 eval expand('sautest')->readdir({e -> e[0] !=# '.'})
427 eval expand('sautest')->readdirex({e -> e.name[0] !=# '.'}) 427 eval expand('sautest')->readdirex({e -> e.name[0] !=# '.'})
428 enddef 428 enddef
429 429
430 def Test_remove_return_type() 430 def Test_remove_return_type()
431 var l = remove(#{one: [1, 2], two: [3, 4]}, 'one') 431 var l = remove({one: [1, 2], two: [3, 4]}, 'one')
432 var res = 0 432 var res = 0
433 for n in l 433 for n in l
434 res += n 434 res += n
435 endfor 435 endfor
436 res->assert_equal(3) 436 res->assert_equal(3)
464 464
465 def Test_searchcount() 465 def Test_searchcount()
466 new 466 new
467 setline(1, "foo bar") 467 setline(1, "foo bar")
468 :/foo 468 :/foo
469 searchcount(#{recompute: true}) 469 searchcount({recompute: true})
470 ->assert_equal(#{ 470 ->assert_equal({
471 exact_match: 1, 471 exact_match: 1,
472 current: 1, 472 current: 1,
473 total: 1, 473 total: 1,
474 maxcount: 99, 474 maxcount: 99,
475 incomplete: 0}) 475 incomplete: 0})
494 setbufvar('%', 'myvar', 123) 494 setbufvar('%', 'myvar', 123)
495 getbufvar('%', 'myvar')->assert_equal(123) 495 getbufvar('%', 'myvar')->assert_equal(123)
496 enddef 496 enddef
497 497
498 def Test_setloclist() 498 def Test_setloclist()
499 var items = [#{filename: '/tmp/file', lnum: 1, valid: true}] 499 var items = [{filename: '/tmp/file', lnum: 1, valid: true}]
500 var what = #{items: items} 500 var what = {items: items}
501 setqflist([], ' ', what) 501 setqflist([], ' ', what)
502 setloclist(0, [], ' ', what) 502 setloclist(0, [], ' ', what)
503 enddef 503 enddef
504 504
505 def Test_setreg() 505 def Test_setreg()
568 if !has('terminal') 568 if !has('terminal')
569 MissingFeature 'terminal' 569 MissingFeature 'terminal'
570 else 570 else
571 botright new 571 botright new
572 var winnr = winnr() 572 var winnr = winnr()
573 term_start(&shell, #{curwin: true}) 573 term_start(&shell, {curwin: true})
574 winnr()->assert_equal(winnr) 574 winnr()->assert_equal(winnr)
575 bwipe! 575 bwipe!
576 endif 576 endif
577 enddef 577 enddef
578 578
584 timer_stop(id) 584 timer_stop(id)
585 enddef 585 enddef
586 586
587 def Test_win_splitmove() 587 def Test_win_splitmove()
588 split 588 split
589 win_splitmove(1, 2, #{vertical: true, rightbelow: true}) 589 win_splitmove(1, 2, {vertical: true, rightbelow: true})
590 close 590 close
591 enddef 591 enddef
592 592
593 593
594 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker 594 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker