patch 8.2.4040: keeping track of allocated lines is too complicated
Problem: Keeping track of allocated lines in user functions is too
complicated.
Solution: Instead of freeing individual lines keep them all until the end.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 9e420ad..75d0dd0 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1757,6 +1757,21 @@
CheckScriptFailure(lines, 'E1173: Text found after endfunction: BBBB')
enddef
+def Test_error_in_function_args()
+ var lines =<< trim END
+ def FirstFunction()
+ def SecondFunction(J =
+ # Nois
+ # one
+
+ enddef|BBBB
+ enddef
+ # Compile all functions
+ defcompile
+ END
+ CheckScriptFailure(lines, 'E488:')
+enddef
+
def Test_return_type_wrong()
CheckScriptFailure([
'def Func(): number',
@@ -2048,7 +2063,6 @@
endfunc
def Run_Test_free_dict_while_in_funcstack()
-
# this was freeing the TermRun() default argument dictionary while it was
# still referenced in a funcstack_T
var lines =<< trim END