patch 8.2.2311: Vim9: cannot assign to variable that shadows command modifier
Problem: Vim9: cannot assign to a variable that shadows a command modifier.
Solution: Check for assignment after possible command modifier.
(closes #7632)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 2d137a3..55b25ea 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1464,5 +1464,26 @@
assert_equal('', $ENVVAR)
enddef
+def Test_assign_command_modifier()
+ var lines =<< trim END
+ var verbose = 0
+ verbose = 1
+ assert_equal(1, verbose)
+ silent verbose = 2
+ assert_equal(2, verbose)
+ silent verbose += 2
+ assert_equal(4, verbose)
+ silent verbose -= 1
+ assert_equal(3, verbose)
+
+ var topleft = {one: 1}
+ sandbox topleft.one = 3
+ assert_equal({one: 3}, topleft)
+ leftabove topleft[' '] = 4
+ assert_equal({one: 3, ' ': 4}, topleft)
+ END
+ CheckDefAndScriptSuccess(lines)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker