diff src/testdir/test_vim9_func.vim @ 20355:fc2d76e0994c v8.2.0733

patch 8.2.0733: Vim9: assigning to dict or list argument does not work Commit: https://github.com/vim/vim/commit/cb2bdb1c6d8b6df4a3d9cfb1ad9e602dace5d310 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 10 22:53:56 2020 +0200 patch 8.2.0733: Vim9: assigning to dict or list argument does not work Problem: Vim9: assigning to dict or list argument does not work. Solution: Recognize an argument as assignment target.
author Bram Moolenaar <Bram@vim.org>
date Sun, 10 May 2020 23:00:04 +0200
parents 98e7b880b7b1
children 5950284a517f
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -193,6 +193,26 @@ def Test_using_var_as_arg()
   call delete('Xdef')
 enddef
 
+def DictArg(arg: dict<string>)
+  arg['key'] = 'value'
+enddef
+
+def ListArg(arg: list<string>)
+  arg[0] = 'value'
+enddef
+
+def Test_assign_to_argument()
+  " works for dict and list
+  let d: dict<string> = {}
+  DictArg(d)
+  assert_equal('value', d['key'])
+  let l: list<string> = []
+  ListArg(l)
+  assert_equal('value', l[0])
+
+  call CheckScriptFailure(['def Func(arg: number)', 'arg = 3', 'enddef'], 'E1090:')
+enddef
+
 def Test_call_func_defined_later()
   call assert_equal('one', g:DefinedLater('one'))
   call assert_fails('call NotDefined("one")', 'E117:')