aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Ennen <mike.ennen@gmail.com>2016-10-26 21:44:57 -0700
committerJames McCoy <jamessan@jamessan.com>2016-12-12 10:17:35 -0500
commit27b2fb944a4b9bce0f06e7c1f2267949c8edab06 (patch)
tree2f5bd7e282b7a2edcf077a7af27b401c9b1f0e34 /src
parente2258598cacebf3c90bbb8e13789194c417d8dad (diff)
downloadrneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.tar.gz
rneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.tar.bz2
rneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.zip
vim-patch:7.4.1585
Problem: Partial is not recognized everywhere. Solution: Check for partial in trans_function_name(). (Yasuhiro Matsumoto) Add a test. https://github.com/vim/vim/commit/d22a18928ebcb465393da1418bb88204b97badb1
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,