From fce82b3aa7dd87f9e15a4c12eda2c65de285d99a Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 5 Jul 2020 16:07:21 +0200 Subject: patch 8.2.1133: Vim9: return type of add() is not specific enough Problem: Vim9: return type of add() is not specific enough. Solution: Return the type of the first argument. (closes #6395) --- src/evalfunc.c | 2 +- src/testdir/test_vim9_func.vim | 6 ++++++ src/version.c | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/evalfunc.c b/src/evalfunc.c index 2cdf186be..c3eaef2ea 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -441,7 +441,7 @@ static funcentry_T global_functions[] = { {"abs", 1, 1, FEARG_1, ret_any, FLOAT_FUNC(f_abs)}, {"acos", 1, 1, FEARG_1, ret_float, FLOAT_FUNC(f_acos)}, - {"add", 2, 2, FEARG_1, ret_any, f_add}, + {"add", 2, 2, FEARG_1, ret_first_arg, f_add}, {"and", 2, 2, FEARG_1, ret_number, f_and}, {"append", 2, 2, FEARG_LAST, ret_number, f_append}, {"appendbufline", 3, 3, FEARG_LAST, ret_number, f_appendbufline}, diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index e8d712f0a..cc938a50e 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -602,6 +602,12 @@ def Test_repeat_return_type() res += n endfor assert_equal(3, res) + + res = 0 + for n in add([1, 2], 3) + res += n + endfor + assert_equal(6, res) enddef def Test_func_type_part() diff --git a/src/version.c b/src/version.c index ed3f34ad4..6a2295191 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1133, /**/ 1132, /**/ -- cgit v1.2.1