patch 9.0.0499: in :def function list created after const is locked
Problem: In :def function list created after const is locked.
Solution: Reset v_lock. (closes #11154)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 730212d..3957942 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -2023,6 +2023,13 @@
unlet w:FLIST
enddef
+def Test_create_list_after_const()
+ const a = 1
+ g:ll = []
+ assert_equal(0, islocked('g:ll'))
+ unlet g:ll
+enddef
+
def Test_var_declaration_fails()
var lines =<< trim END
vim9script
diff --git a/src/version.c b/src/version.c
index 16ba3ee..415897a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 499,
+/**/
498,
/**/
497,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 22dfaaa..c2a3310 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -200,6 +200,7 @@
tv = STACK_TV_BOT(-1);
tv->v_type = VAR_LIST;
tv->vval.v_list = list;
+ tv->v_lock = 0;
if (list != NULL)
++list->lv_refcount;
return OK;