patch 8.2.2688: Vim9: crash when using s: for script variable
Problem: Vim9: crash when using s: for script variable.
Solution: Pass the end pointer. (closes #8045)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 0d49a42..cb1592a 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1644,9 +1644,10 @@
# using the function from a compiled function
def TestMore(): string
- return anAlias.GetString('text')
+ var s = s:anAlias.GetString('foo')
+ return s .. anAlias.GetString('bar')
enddef
- assert_equal('text', TestMore())
+ assert_equal('foobar', TestMore())
# error when using a function that isn't exported
assert_fails('anAlias.Compare(1, 2)', 'E1049:')
diff --git a/src/version.c b/src/version.c
index 0fb8bc3..7da1fc4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2688,
+/**/
2687,
/**/
2686,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index ca1c89c..3fb4a8d 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2822,7 +2822,7 @@
case 'v': res = generate_LOADV(cctx, name, error);
break;
case 's': res = compile_load_scriptvar(cctx, name,
- NULL, NULL, error);
+ NULL, &end, error);
break;
case 'g': if (vim_strchr(name, AUTOLOAD_CHAR) == NULL)
isn_type = ISN_LOADG;