patch 8.2.2693: Vim9: locked script variable can be changed
Problem: Vim9: locked script variable can be changed.
Solution: Check legacy script variable for being locked. (issue #8031)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index c062052..867afaf 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1355,7 +1355,17 @@
enddef
SetLocked()
END
- CheckScriptFailure(lines, 'E741: Value is locked: name')
+ CheckScriptFailure(lines, 'E741: Value is locked: name', 1)
+
+ lines =<< trim END
+ let s:legacy = 'one'
+ lockvar s:legacy
+ def SetLocked()
+ s:legacy = 'two'
+ enddef
+ call SetLocked()
+ END
+ CheckScriptFailure(lines, 'E741: Value is locked: s:legacy', 1)
lines =<< trim END
vim9script
@@ -1365,7 +1375,7 @@
SetGlobalConst()
g:globConst = 234
END
- CheckScriptFailure(lines, 'E741: Value is locked: globConst')
+ CheckScriptFailure(lines, 'E741: Value is locked: globConst', 1)
unlet g:globConst
lines =<< trim END