comparison src/testdir/test_vim9_builtin.vim @ 23428:5807e3958e38 v8.2.2257

patch 8.2.2257: Vim9: using -> for lambda is ambiguous Commit: https://github.com/vim/vim/commit/2949cfdbe4335b9abcfeda1be4dfc52090ee1df6 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 31 21:28:47 2020 +0100 patch 8.2.2257: Vim9: using -> for lambda is ambiguous Problem: Vim9: using -> for lambda is ambiguous. Solution: Stop supporting ->, must use =>.
author Bram Moolenaar <Bram@vim.org>
date Thu, 31 Dec 2020 21:30:03 +0100
parents a6b6bcc004f2
children d2b1269c2c68
comparison
equal deleted inserted replaced
23427:8f2dcc0cfcf6 23428:5807e3958e38
229 assert_equal({a: 1, b: 4}, extend({a: 1, b: 2}, {b: 4})) 229 assert_equal({a: 1, b: 4}, extend({a: 1, b: 2}, {b: 4}))
230 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, 'keep')) 230 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, 'keep'))
231 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, s:string_keep)) 231 assert_equal({a: 1, b: 2}, extend({a: 1, b: 2}, {b: 4}, s:string_keep))
232 232
233 var res: list<dict<any>> 233 var res: list<dict<any>>
234 extend(res, map([1, 2], {_, v -> {}})) 234 extend(res, map([1, 2], (_, v) => ({})))
235 assert_equal([{}, {}], res) 235 assert_equal([{}, {}], res)
236 236
237 CheckDefFailure(['extend([1, 2], 3)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number') 237 CheckDefFailure(['extend([1, 2], 3)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number')
238 CheckDefFailure(['extend([1, 2], ["x"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 238 CheckDefFailure(['extend([1, 2], ["x"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>')
239 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string') 239 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string')
252 res->assert_equal(6) 252 res->assert_equal(6)
253 enddef 253 enddef
254 254
255 255
256 def Wrong_dict_key_type(items: list<number>): list<number> 256 def Wrong_dict_key_type(items: list<number>): list<number>
257 return filter(items, {_, val -> get({[val]: 1}, 'x')}) 257 return filter(items, (_, val) => get({[val]: 1}, 'x'))
258 enddef 258 enddef
259 259
260 def Test_map_function_arg() 260 def Test_map_function_arg()
261 var lines =<< trim END 261 var lines =<< trim END
262 def MapOne(i: number, v: string): string 262 def MapOne(i: number, v: string): string
311 def Test_filter_wrong_dict_key_type() 311 def Test_filter_wrong_dict_key_type()
312 assert_fails('Wrong_dict_key_type([1, 2, 3])', 'E1012:') 312 assert_fails('Wrong_dict_key_type([1, 2, 3])', 'E1012:')
313 enddef 313 enddef
314 314
315 def Test_filter_return_type() 315 def Test_filter_return_type()
316 var l = filter([1, 2, 3], {-> 1}) 316 var l = filter([1, 2, 3], () => 1)
317 var res = 0 317 var res = 0
318 for n in l 318 for n in l
319 res += n 319 res += n
320 endfor 320 endfor
321 res->assert_equal(6) 321 res->assert_equal(6)
322 enddef 322 enddef
323 323
324 def Test_filter_missing_argument() 324 def Test_filter_missing_argument()
325 var dict = {aa: [1], ab: [2], ac: [3], de: [4]} 325 var dict = {aa: [1], ab: [2], ac: [3], de: [4]}
326 var res = dict->filter({k -> k =~ 'a' && k !~ 'b'}) 326 var res = dict->filter((k) => k =~ 'a' && k !~ 'b')
327 res->assert_equal({aa: [1], ac: [3]}) 327 res->assert_equal({aa: [1], ac: [3]})
328 enddef 328 enddef
329 329
330 def Test_garbagecollect() 330 def Test_garbagecollect()
331 garbagecollect(true) 331 garbagecollect(true)
537 def Test_nr2char() 537 def Test_nr2char()
538 nr2char(97, true)->assert_equal('a') 538 nr2char(97, true)->assert_equal('a')
539 enddef 539 enddef
540 540
541 def Test_readdir() 541 def Test_readdir()
542 eval expand('sautest')->readdir({e -> e[0] !=# '.'}) 542 eval expand('sautest')->readdir((e) => e[0] !=# '.')
543 eval expand('sautest')->readdirex({e -> e.name[0] !=# '.'}) 543 eval expand('sautest')->readdirex((e) => e.name[0] !=# '.')
544 enddef 544 enddef
545 545
546 def Test_remove_return_type() 546 def Test_remove_return_type()
547 var l = remove({one: [1, 2], two: [3, 4]}, 'one') 547 var l = remove({one: [1, 2], two: [3, 4]}, 'one')
548 var res = 0 548 var res = 0
564 def Test_search() 564 def Test_search()
565 new 565 new
566 setline(1, ['foo', 'bar']) 566 setline(1, ['foo', 'bar'])
567 var val = 0 567 var val = 0
568 # skip expr returns boolean 568 # skip expr returns boolean
569 search('bar', 'W', 0, 0, {-> val == 1})->assert_equal(2) 569 search('bar', 'W', 0, 0, () => val == 1)->assert_equal(2)
570 :1 570 :1
571 search('bar', 'W', 0, 0, {-> val == 0})->assert_equal(0) 571 search('bar', 'W', 0, 0, () => val == 0)->assert_equal(0)
572 # skip expr returns number, only 0 and 1 are accepted 572 # skip expr returns number, only 0 and 1 are accepted
573 :1 573 :1
574 search('bar', 'W', 0, 0, {-> 0})->assert_equal(2) 574 search('bar', 'W', 0, 0, () => 0)->assert_equal(2)
575 :1 575 :1
576 search('bar', 'W', 0, 0, {-> 1})->assert_equal(0) 576 search('bar', 'W', 0, 0, () => 1)->assert_equal(0)
577 assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') 577 assert_fails("search('bar', '', 0, 0, () => -1)", 'E1023:')
578 assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') 578 assert_fails("search('bar', '', 0, 0, () => -1)", 'E1023:')
579 enddef 579 enddef
580 580
581 def Test_searchcount() 581 def Test_searchcount()
582 new 582 new
583 setline(1, "foo bar") 583 setline(1, "foo bar")
665 strchars("A\u20dd", true)->assert_equal(1) 665 strchars("A\u20dd", true)->assert_equal(1)
666 enddef 666 enddef
667 667
668 def Test_submatch() 668 def Test_submatch()
669 var pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)' 669 var pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'
670 var Rep = {-> range(10)->map({_, v -> submatch(v, true)})->string()} 670 var Rep = () => range(10)->map((_, v) => submatch(v, true))->string()
671 var actual = substitute('A123456789', pat, Rep, '') 671 var actual = substitute('A123456789', pat, Rep, '')
672 var expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]" 672 var expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]"
673 actual->assert_equal(expected) 673 actual->assert_equal(expected)
674 enddef 674 enddef
675 675
701 bwipe! 701 bwipe!
702 endif 702 endif
703 enddef 703 enddef
704 704
705 def Test_timer_paused() 705 def Test_timer_paused()
706 var id = timer_start(50, {-> 0}) 706 var id = timer_start(50, () => 0)
707 timer_pause(id, true) 707 timer_pause(id, true)
708 var info = timer_info(id) 708 var info = timer_info(id)
709 info[0]['paused']->assert_equal(1) 709 info[0]['paused']->assert_equal(1)
710 timer_stop(id) 710 timer_stop(id)
711 enddef 711 enddef