1
0
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:
Bram Moolenaar
2021-01-11 21:20:18 +01:00
parent 9e1d9e3473
commit 082517570d
7 changed files with 68 additions and 18 deletions

View File

@@ -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]