0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.2.2533: Vim9: cannot use a range with :unlet

Problem:    Vim9: cannot use a range with :unlet.
Solution:   Implement ISN_UNLETRANGE.
This commit is contained in:
Bram Moolenaar
2021-02-20 17:04:02 +01:00
parent ada1d870b4
commit 5b5ae29bd3
11 changed files with 231 additions and 38 deletions

View File

@@ -9,6 +9,7 @@ let g:existing = 'yes'
let g:inc_counter = 1
let $SOME_ENV_VAR = 'some'
let g:alist = [7]
let g:adict = #{a: 1}
let g:astring = 'text'
def Test_assignment_bool()
@@ -1414,6 +1415,51 @@ def Test_unlet()
unlet ll[-1]
assert_equal([1, 3], ll)
ll = [1, 2, 3, 4]
unlet ll[0 : 1]
assert_equal([3, 4], ll)
ll = [1, 2, 3, 4]
unlet ll[2 : 8]
assert_equal([1, 2], ll)
ll = [1, 2, 3, 4]
unlet ll[-2 : -1]
assert_equal([1, 2], ll)
CheckDefFailure([
'var ll = [1, 2]',
'll[1 : 2] = 7',
], 'E1165:', 2)
CheckDefFailure([
'var dd = {a: 1}',
'unlet dd["a" : "a"]',
], 'E1166:', 2)
CheckDefExecFailure([
'unlet g:adict[0 : 1]',
], 'E1148:', 1)
CheckDefFailure([
'var ll = [1, 2]',
'unlet ll[0:1]',
], 'E1004:', 2)
CheckDefFailure([
'var ll = [1, 2]',
'unlet ll[0 :1]',
], 'E1004:', 2)
CheckDefFailure([
'var ll = [1, 2]',
'unlet ll[0: 1]',
], 'E1004:', 2)
CheckDefFailure([
'var ll = [1, 2]',
'unlet ll["x" : 1]',
], 'E1012:', 2)
CheckDefFailure([
'var ll = [1, 2]',
'unlet ll[0 : "x"]',
], 'E1012:', 2)
# list of dict unlet
var dl = [{a: 1, b: 2}, {c: 3}]
unlet dl[0]['b']