diff src/testdir/test_vim9_func.vim @ 20275:350bb78345ba v8.2.0693

patch 8.2.0693: closure using argument not tested Commit: https://github.com/vim/vim/commit/2fd4cd755c3e87e733b7363ac13e5c0fe0297a80 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 3 22:30:49 2020 +0200 patch 8.2.0693: closure using argument not tested Problem: Closure using argument not tested. Solution: Add a test, make it work.
author Bram Moolenaar <Bram@vim.org>
date Sun, 03 May 2020 22:45:03 +0200
parents 683c2da4982b
children 49b50843e725
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -700,5 +700,26 @@ def Test_closure_two_indirect_refs()
   unlet g:Read
 enddef
 
+def MakeArgRefs(theArg: string)
+  let local = 'loc_val'
+  g:UseArg = {s -> theArg .. '/' .. local .. '/' .. s}
+enddef
+
+def MakeArgRefsVarargs(theArg: string, ...rest: list<string>)
+  let local = 'the_loc'
+  g:UseVararg = {s -> theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)}
+enddef
+
+def Test_closure_using_argument()
+  MakeArgRefs('arg_val')
+  assert_equal('arg_val/loc_val/call_val', g:UseArg('call_val'))
+
+  MakeArgRefsVarargs('arg_val', 'one', 'two')
+  assert_equal('arg_val/the_loc/call_val/one two', g:UseVararg('call_val'))
+
+  unlet g:UseArg
+  unlet g:UseVararg
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker