forked from aniani/vim
patch 8.2.2331: Vim9: wrong error when modifying dict declared with :final
Problem: Vim9: wrong error when modifying dict declared with :final.
Solution: Do not check for writable variable when an index follows.
(closes #7657)
This commit is contained in:
@@ -1225,6 +1225,12 @@ def Test_var_declaration()
|
||||
g:dict_val = s:dict[key]
|
||||
enddef
|
||||
GetDictVal('a')
|
||||
|
||||
final adict: dict<string> = {}
|
||||
def ChangeAdict()
|
||||
adict.foo = 'foo'
|
||||
enddef
|
||||
ChangeAdict()
|
||||
END
|
||||
CheckScriptSuccess(lines)
|
||||
assert_equal('', g:var_uninit)
|
||||
@@ -1260,6 +1266,16 @@ def Test_var_declaration_fails()
|
||||
CheckScriptFailure(lines, 'E741:')
|
||||
unlet g:constvar
|
||||
|
||||
lines =<< trim END
|
||||
vim9script
|
||||
const cdict: dict<string> = {}
|
||||
def Change()
|
||||
cdict.foo = 'foo'
|
||||
enddef
|
||||
defcompile
|
||||
END
|
||||
CheckScriptFailure(lines, 'E46:')
|
||||
|
||||
lines =<< trim END
|
||||
vim9script
|
||||
final w:finalvar = [9]
|
||||
|
||||
Reference in New Issue
Block a user