mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.2.1644: Vim9: cannot assign 1 and 0 to bool at script level
Problem: Vim9: cannot assign 1 and 0 to bool at script level. Solution: Add the TTFLAG_BOOL_OK flag to the type. Fix name of test function.
This commit is contained in:
@@ -202,11 +202,23 @@ func_type_add_arg_types(
|
||||
type_T *
|
||||
typval2type(typval_T *tv, garray_T *type_gap)
|
||||
{
|
||||
type_T *actual;
|
||||
type_T *type;
|
||||
type_T *member_type;
|
||||
|
||||
if (tv->v_type == VAR_NUMBER)
|
||||
{
|
||||
if (tv->vval.v_number == 0 || tv->vval.v_number == 1)
|
||||
{
|
||||
// number 0 and 1 can also be used for bool
|
||||
type = alloc_type(type_gap);
|
||||
if (type == NULL)
|
||||
return NULL;
|
||||
type->tt_type = VAR_NUMBER;
|
||||
type->tt_flags = TTFLAG_BOOL_OK;
|
||||
return type;
|
||||
}
|
||||
return &t_number;
|
||||
}
|
||||
if (tv->v_type == VAR_BOOL)
|
||||
return &t_bool; // not used
|
||||
if (tv->v_type == VAR_STRING)
|
||||
@@ -276,13 +288,13 @@ typval2type(typval_T *tv, garray_T *type_gap)
|
||||
}
|
||||
}
|
||||
|
||||
actual = alloc_type(type_gap);
|
||||
if (actual == NULL)
|
||||
type = alloc_type(type_gap);
|
||||
if (type == NULL)
|
||||
return NULL;
|
||||
actual->tt_type = tv->v_type;
|
||||
actual->tt_member = &t_any;
|
||||
type->tt_type = tv->v_type;
|
||||
type->tt_member = &t_any;
|
||||
|
||||
return actual;
|
||||
return type;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user