]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.2394: Vim9: min() and max() return type is "any" v8.2.2394
authorBram Moolenaar <Bram@vim.org>
Fri, 22 Jan 2021 21:31:10 +0000 (22:31 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 22 Jan 2021 21:31:10 +0000 (22:31 +0100)
Problem:    Vim9: min() and max() return type is "any".
Solution:   Use return type "number". (closes #7728)

src/evalfunc.c
src/testdir/test_vim9_builtin.vim
src/version.c

index 7f703f60b5334d65f74201bf4bd27de170c6f48d..cc812ce33662d0bc887fad91d8e18a8f5a08346d 100644 (file)
@@ -1219,7 +1219,7 @@ static funcentry_T global_functions[] =
     {"matchstrpos",    2, 4, FEARG_1,      NULL,
                        ret_list_any,       f_matchstrpos},
     {"max",            1, 1, FEARG_1,      NULL,
-                       ret_any,            f_max},
+                       ret_number,         f_max},
     {"menu_info",      1, 2, FEARG_1,      NULL,
                        ret_dict_any,
 #ifdef FEAT_MENU
@@ -1229,7 +1229,7 @@ static funcentry_T global_functions[] =
 #endif
                        },
     {"min",            1, 1, FEARG_1,      NULL,
-                       ret_any,            f_min},
+                       ret_number,         f_min},
     {"mkdir",          1, 3, FEARG_1,      NULL,
                        ret_number_bool,    f_mkdir},
     {"mode",           0, 1, FEARG_1,      NULL,
index 06b5ecdba545ba5710d2bfc6cd516f5b1862f481..776aec0bdedd4916b5d7bf35d103d87c54fe3436 100644 (file)
@@ -655,6 +655,34 @@ def Test_maparg_mapset()
   nunmap <F3>
 enddef
 
+def Test_max()
+  g:flag = true
+  var l1: list<number> = g:flag
+          ? [1, max([2, 3])]
+          : [4, 5]
+  assert_equal([1, 3], l1)
+
+  g:flag = false
+  var l2: list<number> = g:flag
+          ? [1, max([2, 3])]
+          : [4, 5]
+  assert_equal([4, 5], l2)
+enddef
+
+def Test_min()
+  g:flag = true
+  var l1: list<number> = g:flag
+          ? [1, min([2, 3])]
+          : [4, 5]
+  assert_equal([1, 2], l1)
+
+  g:flag = false
+  var l2: list<number> = g:flag
+          ? [1, min([2, 3])]
+          : [4, 5]
+  assert_equal([4, 5], l2)
+enddef
+
 def Test_nr2char()
   nr2char(97, true)->assert_equal('a')
 enddef
index 02fd3fa49f11cc8afe86d0e30a8c083e9d2c815b..63fc0b33bc74d79943dd814efe5ee9efac38d79d 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2394,
 /**/
     2393,
 /**/