Mercurial > vim
changeset 25032:123590c942b7 v8.2.3053
patch 8.2.3053: Vim9: cannot assign to @@ in :def function
Commit: https://github.com/vim/vim/commit/13e45d14ba7f590fb243c041bc45e6d4d47c8432
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 26 13:28:35 2021 +0200
patch 8.2.3053: Vim9: cannot assign to @@ in :def function
Problem: Vim9: cannot assign to @@ in :def function
Solution: Handle '@' like '"'.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 26 Jun 2021 13:30:04 +0200 |
parents | e52b5b8cfee4 |
children | 6f903a90a037 |
files | src/testdir/test_vim9_assign.vim src/version.c src/vim9compile.c |
diffstat | 3 files changed, 19 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -228,16 +228,6 @@ def Test_assignment() CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:') CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:') - lines =<< trim END - @c = 'areg' - @c ..= 'add' - assert_equal('aregadd', @c) - END - CheckDefAndScriptSuccess(lines) - - CheckDefFailure(['@a += "more"'], 'E1051:') - CheckDefFailure(['@a += 123'], 'E1012:') - v:errmsg = 'none' v:errmsg ..= 'again' assert_equal('noneagain', v:errmsg) @@ -249,6 +239,21 @@ def Test_assignment() END enddef +def Test_assign_register() + var lines =<< trim END + @c = 'areg' + @c ..= 'add' + assert_equal('aregadd', @c) + + @@ = 'some text' + assert_equal('some text', getreg('"')) + END + CheckDefAndScriptSuccess(lines) + + CheckDefFailure(['@a += "more"'], 'E1051:') + CheckDefFailure(['@a += 123'], 'E1012:') +enddef + def Test_reserved_name() for name in ['true', 'false', 'null'] CheckDefExecAndScriptFailure(['var ' .. name .. ' = 0'], 'E1034:')