forked from aniani/vim
patch 8.2.4459: Vim9: compiling sort() call fails with unknown arguments
Problem: Vim9: compiling sort() call fails with a funcref that has unknown arguments. Solution: Do not check the arguments if they are unknown at compile time. (closes #9835)
This commit is contained in:
@@ -624,6 +624,8 @@ arg_sort_how(type_T *type, type_T *decl_type UNUSED, argcontext_T *context)
|
||||
where_T where = WHERE_INIT;
|
||||
|
||||
args[1] = args[0];
|
||||
if (type->tt_argcount == -1)
|
||||
t_func_exp.tt_argcount = -1;
|
||||
where.wt_index = 2;
|
||||
return check_type(&t_func_exp, type, TRUE, where);
|
||||
}
|
||||
|
@@ -3812,6 +3812,17 @@ def Test_sort_argument()
|
||||
sort([1, 2, 3], (a: any, b: any) => 1)
|
||||
END
|
||||
v9.CheckDefAndScriptSuccess(lines)
|
||||
|
||||
lines =<< trim END
|
||||
vim9script
|
||||
def SortedList(): list<number>
|
||||
var Lambda: func: number = (a, b): number => a - b
|
||||
var l = [3, 2, 1]
|
||||
return l->sort(Lambda)
|
||||
enddef
|
||||
SortedList()->assert_equal([1, 2, 3])
|
||||
END
|
||||
v9.CheckScriptSuccess(lines)
|
||||
enddef
|
||||
|
||||
def Test_sort_compare_func_fails()
|
||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4459,
|
||||
/**/
|
||||
4458,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user