summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-10-04 14:17:32 +0200
committerBram Moolenaar <Bram@vim.org>2020-10-04 14:17:32 +0200
commit6abd3dc257cf56a8262db38eb15c7cc754e8e002 (patch)
tree090a326699d4a86ce14f53fb8bbe9f09eecf024c
parent7b5d5442696d86daab062592d5c86c829757c352 (diff)
patch 8.2.1797: Vim9: some parts of the code not testedv8.2.1797
Problem: Vim9: some parts of the code not tested. Solution: Add a few tests.
-rw-r--r--src/testdir/test_vim9_func.vim21
-rw-r--r--src/version.c2
2 files changed, 23 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 4f741bb45d..f3352453fe 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1056,6 +1056,8 @@ def Test_func_type_part()
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 @@ def Test_func_return_type()
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 @@ def Test_partial_call()
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 09109b0456..914e4f0844 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1797,
+/**/
1796,
/**/
1795,