patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function

Problem:    Vim9: callstack wrong if :def function calls :def function.
Solution:   Set the line number before calling. (closes #6914)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index ae8f329..4e79c89 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1776,5 +1776,25 @@
   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
diff --git a/src/version.c b/src/version.c
index 2628ed6..7aa35c2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1656,
+/**/
     1655,
 /**/
     1654,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 76cafb4..18cfb02 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1665,6 +1665,7 @@
 
 	    // 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)