Mercurial > vim
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 |