1
0
forked from aniani/vim

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.
This commit is contained in:
Bram Moolenaar
2021-07-11 17:55:01 +02:00
parent c03fe66ade
commit 648594eaf7
4 changed files with 34 additions and 15 deletions

View File

@@ -4177,19 +4177,29 @@ def Test_xxx_echoerr_line_number()
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.