mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
eval: Make assert_true and assert_false accept v:true and v:false
This commit is contained in:
@@ -7587,16 +7587,20 @@ static void f_assert_equal(typval_T *argvars, typval_T *rettv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Common for assert_true() and assert_false().
|
// Common for assert_true() and assert_false().
|
||||||
static void assert_bool(typval_T *argvars, bool isTrue)
|
static void assert_bool(typval_T *argvars, bool is_true)
|
||||||
{
|
{
|
||||||
int error = (int)false;
|
int error = (int)false;
|
||||||
garray_T ga;
|
garray_T ga;
|
||||||
|
|
||||||
if (argvars[0].v_type != VAR_NUMBER ||
|
if ((argvars[0].v_type != VAR_NUMBER ||
|
||||||
(get_tv_number_chk(&argvars[0], &error) == 0) == isTrue || error) {
|
(get_tv_number_chk(&argvars[0], &error) == 0) == is_true || error)
|
||||||
|
&& (argvars[0].v_type != VAR_SPECIAL
|
||||||
|
|| argvars[0].vval.v_special != (is_true
|
||||||
|
?kSpecialVarTrue
|
||||||
|
:kSpecialVarFalse))) {
|
||||||
prepare_assert_error(&ga);
|
prepare_assert_error(&ga);
|
||||||
fill_assert_error(&ga, &argvars[1],
|
fill_assert_error(&ga, &argvars[1],
|
||||||
(char_u *)(isTrue ? "True" : "False"),
|
(char_u *)(is_true ? "True" : "False"),
|
||||||
NULL, &argvars[0]);
|
NULL, &argvars[0]);
|
||||||
assert_error(&ga);
|
assert_error(&ga);
|
||||||
ga_clear(&ga);
|
ga_clear(&ga);
|
||||||
|
@@ -151,4 +151,21 @@ describe('Special values', function()
|
|||||||
eq('Vim(echo):E15: Cannot index a special value', exc_exec('echo v:false[0]'))
|
eq('Vim(echo):E15: Cannot index a special value', exc_exec('echo v:false[0]'))
|
||||||
eq('Vim(echo):E15: Cannot index a special value', exc_exec('echo v:null[0]'))
|
eq('Vim(echo):E15: Cannot index a special value', exc_exec('echo v:null[0]'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('is accepted by assert_true and assert_false', function()
|
||||||
|
funcs.assert_false(false)
|
||||||
|
funcs.assert_false(true)
|
||||||
|
eval('assert_false(v:null)')
|
||||||
|
|
||||||
|
funcs.assert_true(false)
|
||||||
|
funcs.assert_true(true)
|
||||||
|
eval('assert_true(v:null)')
|
||||||
|
|
||||||
|
eq({
|
||||||
|
'Expected False but got v:true',
|
||||||
|
'Expected False but got v:null',
|
||||||
|
'Expected True but got v:false',
|
||||||
|
'Expected True but got v:null',
|
||||||
|
}, meths.get_vvar('errors'))
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user