diff src/testdir/test_vim9_func.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 c3c690c8fcbf
children f00d6ff51046
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -54,7 +54,7 @@ def CallRecursive(n: number): number
 enddef
 
 def CallMapRecursive(l: list<number>): number
-  return map(l, {_, v -> CallMapRecursive([v])})[0]
+  return map(l, (_, v) => CallMapRecursive([v]))[0]
 enddef
 
 def Test_funcdepth_error()
@@ -310,7 +310,7 @@ def Test_nested_global_function()
       vim9script
       def Outer()
         def g:Inner()
-          echo map([1, 2, 3], {_, v -> v + 1})
+          echo map([1, 2, 3], (_, v) => v + 1)
         enddef
         g:Inner()
       enddef
@@ -509,11 +509,11 @@ def Test_call_funcref_wrong_args()
 enddef
 
 def Test_call_lambda_args()
-  CheckDefFailure(['echo {i -> 0}()'],
-                  'E119: Not enough arguments for function: {i -> 0}()')
+  CheckDefFailure(['echo ((i) => 0)()'],
+                  'E119: Not enough arguments for function: ((i) => 0)()')
 
   var lines =<< trim END
-      var Ref = {x: number, y: number -> x + y}
+      var Ref = (x: number, y: number) => x + y
       echo Ref(1, 'x')
   END
   CheckDefFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got string')
@@ -522,7 +522,7 @@ enddef
 def Test_lambda_uses_assigned_var()
   CheckDefSuccess([
         'var x: any = "aaa"'
-        'x = filter(["bbb"], {_, v -> v =~ x})'])
+        'x = filter(["bbb"], (_, v) => v =~ x)'])
 enddef
 
 " Default arg and varargs
@@ -1413,12 +1413,12 @@ enddef
 
 def Test_closure_simple()
   var local = 'some '
-  RefFunc({s -> local .. s})->assert_equal('some more')
+  RefFunc((s) => local .. s)->assert_equal('some more')
 enddef
 
 def MakeRef()
   var local = 'some '
-  g:Ref = {s -> local .. s}
+  g:Ref = (s) => local .. s
 enddef
 
 def Test_closure_ref_after_return()
@@ -1429,8 +1429,8 @@ enddef
 
 def MakeTwoRefs()
   var local = ['some']
-  g:Extend = {s -> local->add(s)}
-  g:Read = {-> local}
+  g:Extend = (s) => local->add(s)
+  g:Read = () => local
 enddef
 
 def Test_closure_two_refs()
@@ -1467,12 +1467,12 @@ enddef
 
 def MakeArgRefs(theArg: string)
   var local = 'loc_val'
-  g:UseArg = {s -> theArg .. '/' .. local .. '/' .. s}
+  g:UseArg = (s) => theArg .. '/' .. local .. '/' .. s
 enddef
 
 def MakeArgRefsVarargs(theArg: string, ...rest: list<string>)
   var local = 'the_loc'
-  g:UseVararg = {s -> theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)}
+  g:UseVararg = (s) => theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)
 enddef
 
 def Test_closure_using_argument()
@@ -1526,7 +1526,7 @@ endfunc
 
 def Test_call_closure_not_compiled()
   var text = 'text'
-  g:Ref = {s ->  s .. text}
+  g:Ref = (s) =>  s .. text
   GetResult(g:Ref)->assert_equal('sometext')
 enddef
 
@@ -1536,7 +1536,7 @@ def Test_double_closure_fails()
     def Func()
       var name = 0
       for i in range(2)
-          timer_start(0, {-> name})
+          timer_start(0, () => name)
       endfor
     enddef
     Func()
@@ -1549,8 +1549,8 @@ def Test_nested_closure_used()
       vim9script
       def Func()
         var x = 'hello'
-        var Closure = {-> x}
-        g:Myclosure = {-> Closure()}
+        var Closure = () => x
+        g:Myclosure = () => Closure()
       enddef
       Func()
       assert_equal('hello', g:Myclosure())
@@ -1565,7 +1565,7 @@ def Test_nested_closure_fails()
       FuncB(0)
     enddef
     def FuncB(n: number): list<string>
-      return map([0], {_, v -> n})
+      return map([0], (_, v) => n)
     enddef
     FuncA()
   END
@@ -1642,8 +1642,8 @@ def Test_nested_lambda()
     vim9script
     def Func()
       var x = 4
-      var Lambda1 = {-> 7}
-      var Lambda2 = {-> [Lambda1(), x]}
+      var Lambda1 = () => 7
+      var Lambda2 = () => [Lambda1(), x]
       var res = Lambda2()
       assert_equal([7, 4], res)
     enddef
@@ -1653,8 +1653,8 @@ def Test_nested_lambda()
 enddef
 
 def Shadowed(): list<number>
-  var FuncList: list<func: number> = [{ -> 42}]
-  return FuncList->map({_, Shadowed -> Shadowed()})
+  var FuncList: list<func: number> = [() => 42]
+  return FuncList->map((_, Shadowed) => Shadowed())
 enddef
 
 def Test_lambda_arg_shadows_func()
@@ -1676,15 +1676,15 @@ def Test_script_var_in_lambda()
   var lines =<< trim END
       vim9script
       var script = 'test'
-      assert_equal(['test'], map(['one'], {-> script}))
+      assert_equal(['test'], map(['one'], () => script))
   END
   CheckScriptSuccess(lines)
 enddef
 
 def Line_continuation_in_lambda(): list<string>
   var x = range(97, 100)
-      ->map({_, v -> nr2char(v)
-          ->toupper()})
+      ->map((_, v) => nr2char(v)
+          ->toupper())
       ->reverse()
   return x
 enddef
@@ -1772,11 +1772,11 @@ def Test_recursive_call()
 enddef
 
 def TreeWalk(dir: string): list<any>
-  return readdir(dir)->map({_, val ->
+  return readdir(dir)->map((_, val) =>
             fnamemodify(dir .. '/' .. val, ':p')->isdirectory()
                ? {[val]: TreeWalk(dir .. '/' .. val)}
                : val
-             })
+             )
 enddef
 
 def Test_closure_in_map()
@@ -1890,7 +1890,7 @@ def Test_block_scoped_var()
         var x = ['a', 'b', 'c']
         if 1
           var y = 'x'
-          map(x, {-> y})
+          map(x, () => y)
         endif
         var z = x
         assert_equal(['x', 'x', 'x'], z)
@@ -1922,7 +1922,7 @@ def Test_did_emsg_reset()
       vim9script
       au BufWinLeave * #
       def Func()
-          popup_menu('', {callback: {-> popup_create('', {})->popup_close()}})
+          popup_menu('', {callback: () => popup_create('', {})->popup_close()})
           eval [][0]
       enddef
       nno <F3> <cmd>call <sid>Func()<cr>
@@ -2014,7 +2014,7 @@ def Test_dict_member_with_silent()
       var d: dict<any>
       def Func()
         try
-          g:result = map([], {_, v -> {}[v]})->join() .. d['']
+          g:result = map([], (_, v) => ({}[v]))->join() .. d['']
         catch
         endtry
       enddef