Mercurial > vim
changeset 21162:3158cc2384cc v8.2.1132
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Commit: https://github.com/vim/vim/commit/9978d473e32cee928d6f901a5eb9a297a2970132
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 5 16:01:56 2020 +0200
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Problem: Vim9: return type of repeat() is not specific enough.
Solution: Return the type of the first argument. (closes https://github.com/vim/vim/issues/6395)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 Jul 2020 16:15:03 +0200 |
parents | daabdca5d4ec |
children | d0940ed3e5e1 |
files | src/evalfunc.c src/testdir/test_vim9_func.vim src/version.c |
diffstat | 3 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -815,10 +815,10 @@ static funcentry_T global_functions[] = {"remote_peek", 1, 2, FEARG_1, ret_number, f_remote_peek}, {"remote_read", 1, 2, FEARG_1, ret_string, f_remote_read}, {"remote_send", 2, 3, FEARG_1, ret_string, f_remote_send}, - {"remote_startserver", 1, 1, FEARG_1, ret_void, f_remote_startserver}, + {"remote_startserver", 1, 1, FEARG_1, ret_void, f_remote_startserver}, {"remove", 2, 3, FEARG_1, ret_any, f_remove}, {"rename", 2, 2, FEARG_1, ret_number, f_rename}, - {"repeat", 2, 2, FEARG_1, ret_any, f_repeat}, + {"repeat", 2, 2, FEARG_1, ret_first_arg, f_repeat}, {"resolve", 1, 1, FEARG_1, ret_string, f_resolve}, {"reverse", 1, 1, FEARG_1, ret_any, f_reverse}, {"round", 1, 1, FEARG_1, ret_float, FLOAT_FUNC(f_round)},
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -596,6 +596,14 @@ def Test_func_type() assert_equal(13, funcResult) enddef +def Test_repeat_return_type() + let res = 0 + for n in repeat([1], 3) + res += n + endfor + assert_equal(3, res) +enddef + def Test_func_type_part() let RefVoid: func: void RefVoid = FuncNoArgNoRet