patch 8.2.1140: Vim9: return type of extend() is any
Problem: Vim9: return type of extend() is any.
Solution: Use type of the argument.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 57e707f..4393331 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -576,7 +576,7 @@
{"exp", 1, 1, FEARG_1, ret_float, FLOAT_FUNC(f_exp)},
{"expand", 1, 3, FEARG_1, ret_any, f_expand},
{"expandcmd", 1, 1, FEARG_1, ret_string, f_expandcmd},
- {"extend", 2, 3, FEARG_1, ret_any, f_extend},
+ {"extend", 2, 3, FEARG_1, ret_first_arg, f_extend},
{"feedkeys", 1, 2, FEARG_1, ret_void, f_feedkeys},
{"file_readable", 1, 1, FEARG_1, ret_number, f_filereadable}, // obsolete
{"filereadable", 1, 1, FEARG_1, ret_number, f_filereadable},
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index d7c37b1..525d46d 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -909,6 +909,15 @@
assert_equal(6, res)
enddef
+def Test_extend_return_type()
+ let l = extend([1, 2], [3])
+ let res = 0
+ for n in l
+ res += n
+ endfor
+ assert_equal(6, res)
+enddef
+
def Line_continuation_in_def(dir: string = ''): string
let path: string = empty(dir)
\ ? 'empty'
diff --git a/src/version.c b/src/version.c
index 23d2d1b..116cb06 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1140,
+/**/
1139,
/**/
1138,