patch 8.2.1797: Vim9: some parts of the code not tested
Problem: Vim9: some parts of the code not tested.
Solution: Add a few tests.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 4f741bb..f335245 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1056,6 +1056,8 @@
CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()')
CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)')
+ var RefAnyNoArgs: func: any = RefAny
+
var RefNr: func: number
RefNr = FuncNoArgRetNumber
RefNr = FuncOneArgRetNumber
@@ -1100,6 +1102,22 @@
CheckDefFailure(['var str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
enddef
+def Test_func_common_type()
+ def FuncOne(n: number): number
+ return n
+ enddef
+ def FuncTwo(s: string): number
+ return len(s)
+ enddef
+ def FuncThree(n: number, s: string): number
+ return n + len(s)
+ enddef
+ var list = [FuncOne, FuncTwo, FuncThree]
+ assert_equal(8, list[0](8))
+ assert_equal(4, list[1]('word'))
+ assert_equal(7, list[2](3, 'word'))
+enddef
+
def MultiLine(
arg1: string,
arg2 = 1234,
@@ -1948,6 +1966,9 @@
Xsetlist = function('setqflist', [[], ' '])
Xsetlist({'title': 'test'})
getqflist({'title': 1})->assert_equal({'title': 'test'})
+
+ var Len: func: number = function('len', ['word'])
+ assert_equal(4, Len())
enddef
def Test_cmd_modifier()
diff --git a/src/version.c b/src/version.c
index 09109b0..914e4f0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1797,
+/**/
1796,
/**/
1795,