summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/testdir/test_vim9_expr.vim9
-rw-r--r--src/testdir/test_vim9_script.vim8
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c6
4 files changed, 19 insertions, 6 deletions
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 1f3e41761..235aee210 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 = &notexist", "E113:")
+ call CheckDefFailure("let x = &notexist", '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 ae3393507..0e18e4a1b 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 d02cf9aaf..f964607cd 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 4349489e5..399720aaf 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;