patch 7.4.1606
Problem: Having type() handle a Funcref that is or isn't a partial
differently causes problems for existing scripts.
Solution: Make type() return the same value. (Thinca)
diff --git a/src/eval.c b/src/eval.c
index a2288f9..69969fe 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -20398,6 +20398,7 @@
{
case VAR_NUMBER: n = 0; break;
case VAR_STRING: n = 1; break;
+ case VAR_PARTIAL:
case VAR_FUNC: n = 2; break;
case VAR_LIST: n = 3; break;
case VAR_DICT: n = 4; break;
@@ -20411,7 +20412,6 @@
break;
case VAR_JOB: n = 8; break;
case VAR_CHANNEL: n = 9; break;
- case VAR_PARTIAL: n = 10; break;
case VAR_UNKNOWN:
EMSG2(_(e_intern2), "f_type(UNKNOWN)");
n = -1;
diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim
index 0120d21..10869f3 100644
--- a/src/testdir/test_viml.vim
+++ b/src/testdir/test_viml.vim
@@ -942,6 +942,7 @@
call assert_equal(0, type(0))
call assert_equal(1, type(""))
call assert_equal(2, type(function("tr")))
+ call assert_equal(2, type(function("tr", [8])))
call assert_equal(3, type([]))
call assert_equal(4, type({}))
call assert_equal(5, type(0.0))
diff --git a/src/version.c b/src/version.c
index 2c4d24d..29d4d59 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1606,
+/**/
1605,
/**/
1604,