mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.1503: Vim9: error for autocmd defined in :def in legacy script
Problem: Vim9: error for an autocmd defined in a :def function in legacy Vim script. Solution: Don't check the variable type. (closes #6758)
This commit is contained in:
parent
122616d9c1
commit
81e17fbe00
@ -3166,6 +3166,23 @@ def Test_vim9_autoload()
|
|||||||
&rtp = save_rtp
|
&rtp = save_rtp
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
def Test_script_var_in_autocmd()
|
||||||
|
# using a script variable from an autocommand, defined in a :def function in a
|
||||||
|
# legacy Vim script, cannot check the variable type.
|
||||||
|
let lines =<< trim END
|
||||||
|
let s:counter = 1
|
||||||
|
def s:Func()
|
||||||
|
au! CursorHold
|
||||||
|
au CursorHold * s:counter += 1
|
||||||
|
enddef
|
||||||
|
call s:Func()
|
||||||
|
doau CursorHold
|
||||||
|
call assert_equal(2, s:counter)
|
||||||
|
au! CursorHold
|
||||||
|
END
|
||||||
|
CheckScriptSuccess(lines)
|
||||||
|
enddef
|
||||||
|
|
||||||
def Test_cmdline_win()
|
def Test_cmdline_win()
|
||||||
# if the Vim syntax highlighting uses Vim9 constructs they can be used from
|
# if the Vim syntax highlighting uses Vim9 constructs they can be used from
|
||||||
# the command line window.
|
# the command line window.
|
||||||
|
@ -754,6 +754,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 */
|
||||||
|
/**/
|
||||||
|
1503,
|
||||||
/**/
|
/**/
|
||||||
1502,
|
1502,
|
||||||
/**/
|
/**/
|
||||||
|
@ -564,6 +564,10 @@ check_script_var_type(typval_T *dest, typval_T *value, char_u *name)
|
|||||||
scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid);
|
scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid);
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
|
if (si->sn_version != SCRIPT_VERSION_VIM9)
|
||||||
|
// legacy script doesn't store variable types
|
||||||
|
return OK;
|
||||||
|
|
||||||
// Find the svar_T in sn_var_vals.
|
// Find the svar_T in sn_var_vals.
|
||||||
for (idx = 0; idx < si->sn_var_vals.ga_len; ++idx)
|
for (idx = 0; idx < si->sn_var_vals.ga_len; ++idx)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user