comparison src/testdir/test_vim9_assign.vim @ 27764:1662d2d2e27b v8.2.4408

patch 8.2.4408: Vim9: some code not covered by tests Commit: https://github.com/vim/vim/commit/ea5c898b5fb60828b0223f258910f84f5c645e63 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Feb 17 14:42:02 2022 +0000 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.
author Bram Moolenaar <Bram@vim.org>
date Thu, 17 Feb 2022 15:45:03 +0100
parents 3196066c5795
children 2a394907825d
comparison
equal deleted inserted replaced
27763:87459cbe6138 27764:1662d2d2e27b
608 lines =<< trim END 608 lines =<< trim END
609 var bl: blob = test_null_blob() 609 var bl: blob = test_null_blob()
610 bl[1] = 8 610 bl[1] = 8
611 END 611 END
612 v9.CheckDefExecAndScriptFailure(lines, ['E1184:', 'E979:'], 2) 612 v9.CheckDefExecAndScriptFailure(lines, ['E1184:', 'E979:'], 2)
613
614 lines =<< trim END
615 g:bl = 'not a blob'
616 g:bl[1 : 2] = 8
617 END
618 v9.CheckDefExecAndScriptFailure(lines, ['E897:', 'E689:'], 2)
613 enddef 619 enddef
614 620
615 def Test_init_in_for_loop() 621 def Test_init_in_for_loop()
616 var lines =<< trim END 622 var lines =<< trim END
617 var l: list<number> = [] 623 var l: list<number> = []
1229 def Echo() 1235 def Echo()
1230 assert_equal([], l) 1236 assert_equal([], l)
1231 assert_equal(0z, bl) 1237 assert_equal(0z, bl)
1232 assert_equal({}, d) 1238 assert_equal({}, d)
1233 enddef 1239 enddef
1240 Echo()
1234 END 1241 END
1235 v9.CheckScriptSuccess(lines) 1242 v9.CheckScriptSuccess(lines)
1236 enddef 1243 enddef
1237 1244
1238 let s:scriptvar = 'init' 1245 let s:scriptvar = 'init'
2068 'var dd = 111', 2075 'var dd = 111',
2069 'unlet dd', 2076 'unlet dd',
2070 ], 'E1081:', 2) 2077 ], 'E1081:', 2)
2071 2078
2072 # dict unlet 2079 # dict unlet
2073 var dd = {a: 1, b: 2, c: 3} 2080 var dd = {a: 1, b: 2, c: 3, 4: 4}
2074 unlet dd['a'] 2081 unlet dd['a']
2075 unlet dd.c 2082 unlet dd.c
2083 unlet dd[4]
2076 assert_equal({b: 2}, dd) 2084 assert_equal({b: 2}, dd)
2077 2085
2078 # list unlet 2086 # list unlet
2079 var ll = [1, 2, 3, 4] 2087 var ll = [1, 2, 3, 4]
2080 unlet ll[1] 2088 unlet ll[1]
2178 ], 'E716:', 2) 2186 ], 'E716:', 2)
2179 v9.CheckDefExecFailure([ 2187 v9.CheckDefExecFailure([
2180 'var dd = {a: 1}', 2188 'var dd = {a: 1}',
2181 'unlet dd[g:alist]', 2189 'unlet dd[g:alist]',
2182 ], 'E1105:', 2) 2190 ], 'E1105:', 2)
2191
2192 v9.CheckDefExecFailure([
2193 'g:dd = {"a": 1, 2: 2}'
2194 'unlet g:dd[0z11]',
2195 ], 'E1029:', 2)
2183 2196
2184 # can compile unlet before variable exists 2197 # can compile unlet before variable exists
2185 g:someDict = {key: 'val'} 2198 g:someDict = {key: 'val'}
2186 var k = 'key' 2199 var k = 'key'
2187 unlet g:someDict[k] 2200 unlet g:someDict[k]