summaryrefslogtreecommitdiff
path: root/src/vim9script.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-19 18:34:15 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-19 18:34:15 +0200
commitc785b9a7f471f12825a1d6d2041c144c74242b7c (patch)
tree77dd8f82077d3875013d137efe5dda19b21761ec /src/vim9script.c
parent128d3079635ae62786a13adc435d0063a64a014a (diff)
downloadvim-git-c785b9a7f471f12825a1d6d2041c144c74242b7c.tar.gz
patch 8.2.1011: Vim9: some code not testedv8.2.1011
Problem: Vim9: some code not tested. Solution: Add a few more test cases. Reorder checks for clearer error. Remove unreachable code.
Diffstat (limited to 'src/vim9script.c')
-rw-r--r--src/vim9script.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vim9script.c b/src/vim9script.c
index 442158c48..6c4cbc430 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -507,7 +507,7 @@ vim9_declare_scriptvar(exarg_T *eap, char_u *arg)
/*
* Check if the type of script variable "dest" allows assigning "value".
*/
- void
+ int
check_script_var_type(typval_T *dest, typval_T *value, char_u *name)
{
scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid);
@@ -521,13 +521,15 @@ check_script_var_type(typval_T *dest, typval_T *value, char_u *name)
if (sv->sv_tv == dest)
{
if (sv->sv_const)
+ {
semsg(_(e_readonlyvar), name);
- else
- check_type(sv->sv_type, typval2type(value), TRUE);
- return;
+ return FAIL;
+ }
+ return check_type(sv->sv_type, typval2type(value), TRUE);
}
}
iemsg("check_script_var_type(): not found");
+ return OK; // not really
}
#endif // FEAT_EVAL