mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.2.0283: Vim9: failing to load script var not tested
Problem: Vim9: failing to load script var not tested. Solution: Add more tests. Fix using s: in old script.
This commit is contained in:
@@ -726,6 +726,9 @@ func Test_expr7_fails()
|
|||||||
|
|
||||||
call CheckDefFailure("let x = ¬exist", 'E113:')
|
call CheckDefFailure("let x = ¬exist", 'E113:')
|
||||||
call CheckDefExecFailure("&grepprg = [343]", 'E1051:')
|
call CheckDefExecFailure("&grepprg = [343]", 'E1051:')
|
||||||
|
|
||||||
|
call CheckDefExecFailure("echo s:doesnt_exist", 'E121:')
|
||||||
|
call CheckDefExecFailure("echo g:doesnt_exist", 'E121:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
let g:Funcrefs = [function('add')]
|
let g:Funcrefs = [function('add')]
|
||||||
|
@@ -61,10 +61,10 @@ def Test_assignment()
|
|||||||
assert_equal('foobar', $ENVVAR)
|
assert_equal('foobar', $ENVVAR)
|
||||||
$ENVVAR = ''
|
$ENVVAR = ''
|
||||||
|
|
||||||
appendToMe ..= 'yyy'
|
s:appendToMe ..= 'yyy'
|
||||||
assert_equal('xxxyyy', appendToMe)
|
assert_equal('xxxyyy', s:appendToMe)
|
||||||
addToMe += 222
|
s:addToMe += 222
|
||||||
assert_equal(333, addToMe)
|
assert_equal(333, s:addToMe)
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
func Test_assignment_failure()
|
func Test_assignment_failure()
|
||||||
|
@@ -738,6 +738,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
283,
|
||||||
/**/
|
/**/
|
||||||
282,
|
282,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -1513,9 +1513,9 @@ compile_load_scriptvar(cctx_T *cctx, char_u *name)
|
|||||||
int idx = get_script_item_idx(current_sctx.sc_sid, name, FALSE);
|
int idx = get_script_item_idx(current_sctx.sc_sid, name, FALSE);
|
||||||
imported_T *import;
|
imported_T *import;
|
||||||
|
|
||||||
if (idx == -1)
|
if (idx == -1 || si->sn_version != SCRIPT_VERSION_VIM9)
|
||||||
{
|
{
|
||||||
// variable exists but is not in sn_var_vals: old style script.
|
// variable is not in sn_var_vals: old style script.
|
||||||
return generate_OLDSCRIPT(cctx, ISN_LOADS, name, current_sctx.sc_sid,
|
return generate_OLDSCRIPT(cctx, ISN_LOADS, name, current_sctx.sc_sid,
|
||||||
&t_any);
|
&t_any);
|
||||||
}
|
}
|
||||||
@@ -1627,7 +1627,9 @@ compile_load(char_u **arg, char_u *end, cctx_T *cctx, int error)
|
|||||||
|| (len == 5 && STRNCMP("false", *arg, 5) == 0))
|
|| (len == 5 && STRNCMP("false", *arg, 5) == 0))
|
||||||
res = generate_PUSHBOOL(cctx, **arg == 't'
|
res = generate_PUSHBOOL(cctx, **arg == 't'
|
||||||
? VVAL_TRUE : VVAL_FALSE);
|
? VVAL_TRUE : VVAL_FALSE);
|
||||||
else
|
else if (SCRIPT_ITEM(current_sctx.sc_sid)->sn_version
|
||||||
|
== SCRIPT_VERSION_VIM9)
|
||||||
|
// in Vim9 script "var" can be script-local.
|
||||||
res = compile_load_scriptvar(cctx, name);
|
res = compile_load_scriptvar(cctx, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user