Problem: Vim9: callstack wrong if :def function calls :def function.
Solution: Set the line number before calling. (closes #6914)
assert_equal('', g:ei_after)
enddef
+def StackTop()
+ eval 1
+ eval 2
+ # call not on fourth line
+ StackBot()
+enddef
+
+def StackBot()
+ # throw an error
+ eval [][0]
+enddef
+
+def Test_callstack_def()
+ try
+ StackTop()
+ catch
+ assert_match('Test_callstack_def\[2\]..StackTop\[4\]..StackBot, line 2', v:throwpoint)
+ endtry
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1656,
/**/
1655,
/**/
// call a :def function
case ISN_DCALL:
+ SOURCING_LNUM = iptr->isn_lnum;
if (call_dfunc(iptr->isn_arg.dfunc.cdf_idx,
iptr->isn_arg.dfunc.cdf_argcount,
&ectx) == FAIL)