summaryrefslogtreecommitdiff
path: root/src/testdir/test_vim9_func.vim
diff options
context:
space:
mode:
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r--src/testdir/test_vim9_func.vim26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 49dc2f2f2..83cef67c2 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -738,6 +738,32 @@ def Test_closure_using_argument()
unlet g:UseVararg
enddef
+def MakeGetAndAppendRefs()
+ let local = 'a'
+
+ def Append(arg: string)
+ local ..= arg
+ enddef
+ g:Append = Append
+
+ def Get(): string
+ return local
+ enddef
+ g:Get = Get
+enddef
+
+def Test_closure_append_get()
+ MakeGetAndAppendRefs()
+ assert_equal('a', g:Get())
+ g:Append('-b')
+ assert_equal('a-b', g:Get())
+ g:Append('-c')
+ assert_equal('a-b-c', g:Get())
+
+ unlet g:Append
+ unlet g:Get
+enddef
+
def Test_nested_closure()
let local = 'text'
def Closure(arg: string): string