patch 8.2.4408: Vim9: some code not covered by tests
Problem: Vim9: some code not covered by tests.
Solution: Add a few more tests. Correct error message. Allow unlet on dict
with a number key.
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 835bc1e..c5f56c2 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -610,6 +610,12 @@
bl[1] = 8
END
v9.CheckDefExecAndScriptFailure(lines, ['E1184:', 'E979:'], 2)
+
+ lines =<< trim END
+ g:bl = 'not a blob'
+ g:bl[1 : 2] = 8
+ END
+ v9.CheckDefExecAndScriptFailure(lines, ['E897:', 'E689:'], 2)
enddef
def Test_init_in_for_loop()
@@ -1231,6 +1237,7 @@
assert_equal(0z, bl)
assert_equal({}, d)
enddef
+ Echo()
END
v9.CheckScriptSuccess(lines)
enddef
@@ -2070,9 +2077,10 @@
], 'E1081:', 2)
# dict unlet
- var dd = {a: 1, b: 2, c: 3}
+ var dd = {a: 1, b: 2, c: 3, 4: 4}
unlet dd['a']
unlet dd.c
+ unlet dd[4]
assert_equal({b: 2}, dd)
# list unlet
@@ -2181,6 +2189,11 @@
'unlet dd[g:alist]',
], 'E1105:', 2)
+ v9.CheckDefExecFailure([
+ 'g:dd = {"a": 1, 2: 2}'
+ 'unlet g:dd[0z11]',
+ ], 'E1029:', 2)
+
# can compile unlet before variable exists
g:someDict = {key: 'val'}
var k = 'key'