patch 8.2.1606: Vim9: cannot use "true" with has()
Problem: Vim9: cannot use "true" with has().
Solution: Use tv_get_bool(). (closes #6876)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index aefb1bf..9e384da 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4763,7 +4763,7 @@
}
}
- if (argvars[1].v_type != VAR_UNKNOWN && tv_get_number(&argvars[1]) != 0)
+ if (argvars[1].v_type != VAR_UNKNOWN && tv_get_bool(&argvars[1]))
// return whether feature could ever be enabled
rettv->vval.v_number = x;
else
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index eb608c5..dcc8087 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1516,6 +1516,10 @@
set wildignore&
enddef
+def Test_has()
+ assert_equal(1, has('eval', true))
+enddef
+
def Fibonacci(n: number): number
if n < 2
return n
diff --git a/src/version.c b/src/version.c
index 69aecec..70f736d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1606,
+/**/
1605,
/**/
1604,