mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.4371: Vim9: can create a script variable from a legacy function
Problem: Vim9: can create a script variable from a legacy function. Solution: Disallow creating a script variable from a function.
This commit is contained in:
@@ -3234,4 +3234,6 @@ EXTERN char e_function_name_must_start_with_capital_str[]
|
|||||||
INIT(= N_("E1267: Function name must start with a capital: %s"));
|
INIT(= N_("E1267: Function name must start with a capital: %s"));
|
||||||
EXTERN char e_cannot_use_s_colon_in_vim9_script_str[]
|
EXTERN char e_cannot_use_s_colon_in_vim9_script_str[]
|
||||||
INIT(= N_("E1268: Cannot use s: in Vim9 script: %s"));
|
INIT(= N_("E1268: Cannot use s: in Vim9 script: %s"));
|
||||||
|
EXTERN char e_cannot_create_vim9_script_variable_in_function_str[]
|
||||||
|
INIT(= N_("E1269: Cannot create a Vim9 script variable in a function: %s"));
|
||||||
#endif
|
#endif
|
||||||
|
@@ -3504,6 +3504,12 @@ set_var_const(
|
|||||||
semsg(_(e_cannot_use_str_itself_it_is_imported), name);
|
semsg(_(e_cannot_use_str_itself_it_is_imported), name);
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
if (!in_vim9script())
|
||||||
|
{
|
||||||
|
semsg(_(e_cannot_create_vim9_script_variable_in_function_str),
|
||||||
|
name);
|
||||||
|
goto failed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dest_tv == NULL)
|
if (dest_tv == NULL)
|
||||||
|
@@ -3071,13 +3071,21 @@ def Test_forward_declaration()
|
|||||||
delete('Xforward')
|
delete('Xforward')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_declare_script_in_func()
|
def Test_declare_script_var_in_func()
|
||||||
var lines =<< trim END
|
var lines =<< trim END
|
||||||
vim9script
|
vim9script
|
||||||
func Declare()
|
func Declare()
|
||||||
let s:local = 123
|
let s:local = 123
|
||||||
endfunc
|
endfunc
|
||||||
Declare()
|
Declare()
|
||||||
|
END
|
||||||
|
v9.CheckScriptFailure(lines, 'E1269:')
|
||||||
|
enddef
|
||||||
|
|
||||||
|
def Test_lock_script_var()
|
||||||
|
var lines =<< trim END
|
||||||
|
vim9script
|
||||||
|
var local = 123
|
||||||
assert_equal(123, local)
|
assert_equal(123, local)
|
||||||
|
|
||||||
var error: string
|
var error: string
|
||||||
|
@@ -750,6 +750,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 */
|
||||||
|
/**/
|
||||||
|
4371,
|
||||||
/**/
|
/**/
|
||||||
4370,
|
4370,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user