patch 8.2.3147: Vim9: profiling does not work with a nested function
Problem: Vim9: profiling does not work with a nested function.
Solution: Also compile a nested function without profiling. (closes #8543)
Handle that compiling may cause the table of compiled functions to
change.
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 0602b2a..10f41c7 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -4177,19 +4177,29 @@
CheckDefExecAndScriptFailure(lines, 'some error continued', 1)
enddef
-def ProfiledFunc()
+def ProfiledWithLambda()
var n = 3
echo [[1, 2], [3, 4]]->filter((_, l) => l[0] == n)
enddef
+def ProfiledNested()
+ var x = 0
+ def Nested(): any
+ return x
+ enddef
+ Nested()
+enddef
+
" Execute this near the end, profiling doesn't stop until Vim exists.
" This only tests that it works, not the profiling output.
def Test_xx_profile_with_lambda()
CheckFeature profile
profile start Xprofile.log
- profile func ProfiledFunc
- ProfiledFunc()
+ profile func ProfiledWithLambda
+ ProfiledWithLambda()
+ profile func ProfiledNested
+ ProfiledNested()
enddef
" Keep this last, it messes up highlighting.