aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorMichael Ennen <mike.ennen@gmail.com>2016-12-16 14:51:49 -0700
committerMichael Ennen <mike.ennen@gmail.com>2017-02-14 17:38:18 -0700
commit53fad45115d3ee438dfb537d99ccf3b021ebc6b7 (patch)
tree9143f619985d8a02ce03fa5f56cee60c45d5f460 /src/nvim/testdir
parent1f715ac1c1a1eee43360be911636020ed855e12c (diff)
downloadrneovim-53fad45115d3ee438dfb537d99ccf3b021ebc6b7.tar.gz
rneovim-53fad45115d3ee438dfb537d99ccf3b021ebc6b7.tar.bz2
rneovim-53fad45115d3ee438dfb537d99ccf3b021ebc6b7.zip
vim-patch:7.4.2137
Problem: Using function() with a name will find another function when it is redefined. Solution: Add funcref(). Refer to lambda using a partial. Fix several reference counting issues. https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_expr.vim15
-rw-r--r--src/nvim/testdir/test_lambda.vim4
2 files changed, 17 insertions, 2 deletions
diff --git a/src/nvim/testdir/test_expr.vim b/src/nvim/testdir/test_expr.vim
index 7e43af9ebd..419d539b42 100644
--- a/src/nvim/testdir/test_expr.vim
+++ b/src/nvim/testdir/test_expr.vim
@@ -150,3 +150,18 @@ func Test_function_with_funcref()
call assert_equal(v:t_string, s:fref('x'))
call assert_fails("call function('s:f')", 'E700:')
endfunc
+
+func Test_funcref()
+ func! One()
+ return 1
+ endfunc
+ let OneByName = function('One')
+ let OneByRef = funcref('One')
+ func! One()
+ return 2
+ endfunc
+ call assert_equal(2, OneByName())
+ call assert_equal(1, OneByRef())
+ let OneByRef = funcref('One')
+ call assert_equal(2, OneByRef())
+endfunc
diff --git a/src/nvim/testdir/test_lambda.vim b/src/nvim/testdir/test_lambda.vim
index d51b6f7c5a..00665810bd 100644
--- a/src/nvim/testdir/test_lambda.vim
+++ b/src/nvim/testdir/test_lambda.vim
@@ -259,10 +259,10 @@ endfunction
func Test_closure_refcount()
let g:Count = LambdaFoo()
- call test_garbagecollect_now()
+ call garbagecollect()
call assert_equal(1, g:Count())
let g:Count2 = LambdaFoo()
- call test_garbagecollect_now()
+ call garbagecollect()
call assert_equal(1, g:Count2())
call assert_equal(2, g:Count())
call assert_equal(3, g:Count2())