patch 8.2.3169: Vim9: cannot handle nested inline function
Problem: Vim9: cannot handle nested inline function.
Solution: Check for nested inline function. (closes #8575)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index ae48a89..cd6ffa4 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2082,7 +2082,8 @@
var Func = (nr: number): int => {
return nr
END
- CheckDefAndScriptFailure(lines, 'E1171', 1) # line nr is function start
+ CheckDefFailure(lines, 'E1171', 0) # line nr is function start
+ CheckScriptFailure(['vim9script'] + lines, 'E1171', 2)
lines =<< trim END
var Func = (nr: number): int => {
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 08e68d1..c89c13e 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -2255,6 +2255,16 @@
assert_equal('--there', F('unused')('there')('--'))
END
CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ echo range(4)->mapnew((_, v) => {
+ return range(v) ->mapnew((_, s) => {
+ return string(s)
+ })
+ })
+ END
+ CheckScriptSuccess(lines)
enddef
def Shadowed(): list<number>