Mercurial > vim
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] |