if (type->tt_type == VAR_FUNC
&& !(type->tt_member->tt_type == VAR_BOOL
|| type->tt_member->tt_type == VAR_NUMBER
+ || type->tt_member->tt_type == VAR_UNKNOWN
|| type->tt_member->tt_type == VAR_ANY))
{
arg_type_mismatch(&t_func_bool, type, context->arg_idx + 1);
assert_equal([], filter([1, 2, 3], '0'))
assert_equal([1, 2, 3], filter([1, 2, 3], '1'))
assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20'))
+
+ def GetFiltered(): list<number>
+ var Odd: func = (_, v) => v % 2
+ return range(3)->filter(Odd)
+ enddef
+ assert_equal([1], GetFiltered())
enddef
def Test_filter_wrong_dict_key_type()