patch 8.2.2159: Vim9: when declaring a list it is not allocated yet
Problem: Vim9: when declaring a list it is not allocated yet, causing a
following extend() to fail.
Solution: When fetching a variable value for a list or dict that is null
allocate the list or dict, so it can be used. (closes #7491)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index ad7b85b..c9872d4 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -391,6 +391,16 @@
assert_equal(['a', 'b'], list)
END
CheckScriptSuccess(lines)
+ lines =<< trim END
+ vim9script
+ var list: list<string>
+ def Func()
+ extend(list, ['x', 'b'])
+ enddef
+ Func()
+ assert_equal(['x', 'b'], list)
+ END
+ CheckScriptSuccess(lines)
lines =<< trim END
vim9script
@@ -584,8 +594,9 @@
return test
enddef
FillDict()
+ assert_equal({a: 43}, test)
END
- CheckScriptFailure(lines, 'E1103:')
+ CheckScriptSuccess(lines)
# assignment to global dict
lines =<< trim END