mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.1668: Vim9: not accepting 0 or 1 as bool when type is any
Problem: Vim9: not accepting 0 or 1 as bool when type is any. Solution: Convert the type with the CHECKTYPE instruction. (closes #6913)
This commit is contained in:
parent
0f769815c8
commit
dadaddd59f
@ -2369,6 +2369,9 @@ def Test_expr7_method_call()
|
|||||||
type: '',
|
type: '',
|
||||||
module: ''}
|
module: ''}
|
||||||
], getloclist(0))
|
], getloclist(0))
|
||||||
|
|
||||||
|
let result: bool = get(#{n: 0}, 'n', 0)
|
||||||
|
assert_equal(false, result)
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
func Test_expr7_trailing_fails()
|
func Test_expr7_trailing_fails()
|
||||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1668,
|
||||||
/**/
|
/**/
|
||||||
1667,
|
1667,
|
||||||
/**/
|
/**/
|
||||||
|
@ -2510,11 +2510,23 @@ call_def_function(
|
|||||||
|| (tv->v_type == VAR_FUNC
|
|| (tv->v_type == VAR_FUNC
|
||||||
&& ct->ct_type == VAR_PARTIAL)))
|
&& ct->ct_type == VAR_PARTIAL)))
|
||||||
{
|
{
|
||||||
SOURCING_LNUM = iptr->isn_lnum;
|
if (tv->v_type == VAR_NUMBER && ct->ct_type == VAR_BOOL
|
||||||
semsg(_(e_expected_str_but_got_str),
|
&& (tv->vval.v_number == 0
|
||||||
vartype_name(ct->ct_type),
|
|| tv->vval.v_number == 1))
|
||||||
vartype_name(tv->v_type));
|
{
|
||||||
goto on_error;
|
// number 0 is FALSE, number 1 is TRUE
|
||||||
|
tv->v_type = VAR_BOOL;
|
||||||
|
tv->vval.v_number = tv->vval.v_number
|
||||||
|
? VVAL_TRUE : VVAL_FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SOURCING_LNUM = iptr->isn_lnum;
|
||||||
|
semsg(_(e_expected_str_but_got_str),
|
||||||
|
vartype_name(ct->ct_type),
|
||||||
|
vartype_name(tv->v_type));
|
||||||
|
goto on_error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user