forked from aniani/vim
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.
This commit is contained in:
@@ -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:')
|
||||
|
||||
@@ -702,6 +706,26 @@ def Test_nested_global_function()
|
||||
END
|
||||
CheckScriptSuccess(lines)
|
||||
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user