patch 8.2.1516: Vim9: error for :exe has wrong line number
Problem: Vim9: error for :exe has wrong line number.
Solution: Set line number before calling do_cmdline_cmd(). (closes #6774)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 05b4e9f..6417d21 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2159,8 +2159,9 @@
echomsg [1, 2, 3] #{a: 1, b: 2}
assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines))
- call CheckDefFailure(['execute xxx'], 'E1001:')
- call CheckDefFailure(['execute "cmd"# comment'], 'E488:')
+ call CheckDefFailure(['execute xxx'], 'E1001:', 1)
+ call CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1)
+ call CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1)
enddef
def Test_execute_cmd_vimscript()
diff --git a/src/version.c b/src/version.c
index 65b9d0f..4c2794a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1516,
+/**/
1515,
/**/
1514,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a49f3d7..53a748e 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1062,7 +1062,10 @@
if (ga.ga_data != NULL)
{
if (iptr->isn_type == ISN_EXECUTE)
+ {
+ SOURCING_LNUM = iptr->isn_lnum;
do_cmdline_cmd((char_u *)ga.ga_data);
+ }
else
{
msg_sb_eol();