patch 8.2.2760: Vim9: no error for changing a for loop variable
Problem: Vim9: no error for changing a for loop variable.
Solution: Make the loop variable read-only. (issue #8102)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index db1707a..af7e5fd 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2393,6 +2393,14 @@
g:adict = {a: 1}
CheckDefExecFailure(['for i in g:adict', 'echo 3', 'endfor'], 'E1177: For loop on dict not supported')
unlet g:adict
+
+ var lines =<< trim END
+ var d: list<dict<any>> = [{a: 0}]
+ for e in d
+ e = {a: 0, b: ''}
+ endfor
+ END
+ CheckDefAndScriptFailure2(lines, 'E1018:', 'E46:', 3)
enddef
def Test_for_loop_script_var()