patch 8.2.3810: Vim9: expr4 test fails on MS-Windows
Problem: Vim9: expr4 test fails on MS-Windows.
Solution: Do not give an error for a missing function name when skipping.
diff --git a/src/eval.c b/src/eval.c
index 0a85b90..d9f44b2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2001,7 +2001,7 @@
// Need to make a copy, in case evaluating the arguments makes
// the name invalid.
s = vim_strsave(s);
- if (s == NULL || *s == NUL || (flags & EVAL_CONSTANT))
+ if (s == NULL || (evaluate && (*s == NUL || (flags & EVAL_CONSTANT))))
ret = FAIL;
else
{
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index a357b11..1f695bc 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -646,8 +646,16 @@
assert_equal(false, function('g:Test_expr4_equal', [123]) == function('g:Test_expr4_is', [123]))
assert_equal(false, function('g:Test_expr4_equal', [123]) == function('g:Test_expr4_equal', [999]))
- # TODO: this unexpectedly sometimes fails on Appveyor
- if !has('win32')
+ if true
+ var OneFunc: func
+ var TwoFunc: func
+ OneFunc = function('len')
+ TwoFunc = function('len')
+ assert_equal(true, OneFunc('abc') == TwoFunc('123'))
+ endif
+
+ # check this doesn't fail when skipped
+ if false
var OneFunc: func
var TwoFunc: func
OneFunc = function('len')
diff --git a/src/version.c b/src/version.c
index c7f6fe7..6ce7173 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3810,
+/**/
3809,
/**/
3808,