diff src/testdir/test_vim9_assign.vim @ 26833:434eaef2ac62 v8.2.3945

patch 8.2.3945: Vim9: partial variable argument types are wrong Commit: https://github.com/vim/vim/commit/13789bf10338a0d049c78acfdc0870fc63e63f4f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 30 13:29:00 2021 +0000 patch 8.2.3945: Vim9: partial variable argument types are wrong Problem: Vim9: partial variable argument types are wrong, leading to a crash. Solution: When adjusting the argument count also adjust the argument types. (closes #9433)
author Bram Moolenaar <Bram@vim.org>
date Thu, 30 Dec 2021 14:30:04 +0100
parents a07323eb647f
children 15913ba6363e
line wrap: on
line diff
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -847,6 +847,36 @@ def Test_assignment_partial()
       Ref()
   END
   CheckScriptSuccess(lines)
+
+  lines =<< trim END
+      vim9script
+
+      var nres: any
+      var sres: any
+      def Func(n: number, s = '')
+        nres = n
+        sres = s
+      enddef
+
+      var n: number
+      var Ref = function(Func, [n])
+      Ref('x')
+      assert_equal(0, nres)
+      assert_equal('x', sres)
+  END
+  CheckScriptSuccess(lines)
+
+  lines =<< trim END
+      vim9script
+
+      def Func(n: number, s = '')
+      enddef
+
+      var n: number
+      var Ref = function(Func, [n])
+      Ref(0)
+  END
+  CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected string but got number')
 enddef
 
 def Test_assignment_list_any_index()