diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-02-19 18:14:44 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-02-19 18:14:44 +0100 |
commit | 401d9ffb5a8a40102c000c2d2614aa043f541f90 (patch) | |
tree | 0f85933f885880c25d30d6f59284aaf105ea06ea | |
parent | a2f6e42ded067df8ee682c15aa246491a389b1a0 (diff) |
patch 8.2.0282: Vim9: setting number option not testedv8.2.0282
Problem: Vim9: setting number option not tested.
Solution: Add more tests. Fix assigning to global variable.
-rw-r--r-- | src/testdir/test_vim9_expr.vim | 9 | ||||
-rw-r--r-- | src/testdir/test_vim9_script.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 6 |
4 files changed, 19 insertions, 6 deletions
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 1f3e417610..235aee2105 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -596,8 +596,6 @@ let g:dict_one = #{one: 1} let $TESTVAR = 'testvar' -let @a = 'register a' - " test low level expression def Test_expr7_number() " number constant @@ -675,6 +673,8 @@ def Test_expr7_option() " option set ts=11 assert_equal(11, &ts) + &ts = 9 + assert_equal(9, &ts) set ts=8 set grepprg=some\ text assert_equal('some text', &grepprg) @@ -690,7 +690,7 @@ def Test_expr7_environment() enddef def Test_expr7_register() - " register + @a = 'register a' assert_equal('register a', @a) enddef @@ -724,7 +724,8 @@ func Test_expr7_fails() call CheckDefFailure("let x = @", "E1002:") call CheckDefFailure("let x = @<", "E354:") - call CheckDefFailure("let x = ¬exist", "E113:") + call CheckDefFailure("let x = ¬exist", 'E113:') + call CheckDefExecFailure("&grepprg = [343]", 'E1051:') endfunc let g:Funcrefs = [function('add')] diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index ae33935072..0e18e4a1b6 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -29,6 +29,7 @@ endfunc let s:appendToMe = 'xxx' let s:addToMe = 111 +let g:existing = 'yes' def Test_assignment() let bool1: bool = true @@ -46,6 +47,13 @@ def Test_assignment() let dict1: dict<string> = #{key: 'value'} let dict2: dict<number> = #{one: 1, two: 2} + g:newvar = 'new' + assert_equal('new', g:newvar) + + assert_equal('yes', g:existing) + g:existing = 'no' + assert_equal('no', g:existing) + v:char = 'abc' assert_equal('abc', v:char) diff --git a/src/version.c b/src/version.c index d02cf9aaf9..f964607cda 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 282, +/**/ 281, /**/ 280, diff --git a/src/vim9execute.c b/src/vim9execute.c index 4349489e54..399720aaf5 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -726,8 +726,10 @@ call_def_function( int reg = iptr->isn_arg.number; --ectx.ec_stack.ga_len; + tv = STACK_TV_BOT(0); write_reg_contents(reg == '@' ? '"' : reg, - tv_get_string(STACK_TV_BOT(0)), -1, FALSE); + tv_get_string(tv), -1, FALSE); + clear_tv(tv); } break; @@ -746,7 +748,7 @@ call_def_function( --ectx.ec_stack.ga_len; di = find_var_in_ht(get_globvar_ht(), 0, - iptr->isn_arg.string, TRUE); + iptr->isn_arg.string + 2, TRUE); if (di == NULL) { funccal_entry_T entry; |