aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c4
-rw-r--r--src/nvim/testdir/test_partial.vim12
-rw-r--r--src/nvim/version.c2
3 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 157075eb81..51320ea2af 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -20321,6 +20321,10 @@ trans_function_name (
if (lv.ll_tv->v_type == VAR_FUNC && lv.ll_tv->vval.v_string != NULL) {
name = vim_strsave(lv.ll_tv->vval.v_string);
*pp = end;
+ } else if (lv.ll_tv->v_type == VAR_PARTIAL
+ && lv.ll_tv->vval.v_partial != NULL) {
+ name = vim_strsave(lv.ll_tv->vval.v_partial->pt_name);
+ *pp = end;
} else {
if (!skip && !(flags & TFN_QUIET) && (fdp == NULL
|| lv.ll_dict == NULL
diff --git a/src/nvim/testdir/test_partial.vim b/src/nvim/testdir/test_partial.vim
index 7941ec01c2..75cbfe2f25 100644
--- a/src/nvim/testdir/test_partial.vim
+++ b/src/nvim/testdir/test_partial.vim
@@ -105,3 +105,15 @@ func Test_script_function_in_dict()
let B = s:obj2.clear
call assert_equal('bar', B())
endfunc
+
+func Test_partial_exists()
+ let F = function('MyFunc')
+ call assert_true(exists('*F'))
+ let lF = [F]
+ call assert_true(exists('*lF[0]'))
+
+ let F = function('MyFunc', ['arg'])
+ call assert_true(exists('*F'))
+ let lF = [F]
+ call assert_true(exists('*lF[0]'))
+endfunc
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 9f3bf74a99..e6be91e2fd 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -857,7 +857,7 @@ static int included_patches[] = {
1588,
// 1587 NA
// 1586,
- // 1585,
+ 1585,
// 1584 NA
// 1583 NA
1582,