Mercurial > vim
diff src/testdir/test_vim9_func.vim @ 26323:3841da4eac23 v8.2.3692
patch 8.2.3692: Vim9: cannot use :func inside a :def function
Commit: https://github.com/vim/vim/commit/38453528c3372293d70c8e85471a6188749ff331
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 28 22:00:12 2021 +0000
patch 8.2.3692: Vim9: cannot use :func inside a :def function
Problem: Vim9: cannot use :func inside a :def function.
Solution: Make it work.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 28 Nov 2021 23:15:03 +0100 |
parents | 9e5e331828da |
children | a926ccd92ae1 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -586,15 +586,19 @@ def Test_func_with_comments() enddef def Test_nested_function() - def Nested(arg: string): string + def NestedDef(arg: string): string return 'nested ' .. arg enddef - Nested('function')->assert_equal('nested function') + NestedDef(':def')->assert_equal('nested :def') + + func NestedFunc(arg) + return 'nested ' .. a:arg + endfunc + NestedFunc(':func')->assert_equal('nested :func') CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:') CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') - CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:') CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:') CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:') @@ -705,6 +709,26 @@ def Test_nested_global_function() lines =<< trim END vim9script def Outer() + func g:Inner() + return 'inner' + endfunc + enddef + defcompile + Outer() + g:Inner()->assert_equal('inner') + delfunc g:Inner + Outer() + g:Inner()->assert_equal('inner') + delfunc g:Inner + Outer() + g:Inner()->assert_equal('inner') + delfunc g:Inner + END + CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + def Outer() def g:Inner(): string return 'inner' enddef