From: Bram Moolenaar Date: Wed, 18 Nov 2020 16:17:15 +0000 (+0100) Subject: patch 8.2.2012: Vim9: confusing error message when using bool wrongly X-Git-Tag: v8.2.2012 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d92cc130fbb1beacf6411ee5837545f46f9be90e;p=vim patch 8.2.2012: Vim9: confusing error message when using bool wrongly Problem: Vim9: confusing error message when using bool wrongly. Solution: Mention "Bool" instead of "Special". (closes #7323) --- diff --git a/src/errors.h b/src/errors.h index 969301f9c..5ba6d52be 100644 --- a/src/errors.h +++ b/src/errors.h @@ -301,3 +301,5 @@ EXTERN char e_cmd_mapping_must_end_with_cr_before_second_cmd[] INIT(=N_("E1136: mapping must end with before second ")); EXTERN char e_cmd_maping_must_not_include_str_key[] INIT(= N_("E1137: mapping must not include %s key")); +EXTERN char e_using_bool_as_number[] + INIT(= N_("E1138: Using a Bool as a Number")); diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 63bfdd804..b7897fe7c 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -1292,6 +1292,13 @@ func Test_expr5_fails() call CheckDefFailure(["var x = 'a' .. 0z32"], 'E1105:', 1) call CheckDefFailure(["var x = 'a' .. function('len')"], 'E1105:', 1) call CheckDefFailure(["var x = 'a' .. function('len', ['a'])"], 'E1105:', 1) + + call CheckScriptFailure(['vim9script', 'var x = 1 + v:none'], 'E611:', 2) + call CheckScriptFailure(['vim9script', 'var x = 1 + v:null'], 'E611:', 2) + call CheckScriptFailure(['vim9script', 'var x = 1 + v:true'], 'E1138:', 2) + call CheckScriptFailure(['vim9script', 'var x = 1 + v:false'], 'E1138:', 2) + call CheckScriptFailure(['vim9script', 'var x = 1 + true'], 'E1138:', 2) + call CheckScriptFailure(['vim9script', 'var x = 1 + false'], 'E1138:', 2) endfunc func Test_expr5_fails_channel() diff --git a/src/typval.c b/src/typval.c index 7c55d3a5e..0e2513aee 100644 --- a/src/typval.c +++ b/src/typval.c @@ -213,7 +213,10 @@ tv_get_bool_or_number_chk(typval_T *varp, int *denote, int want_bool) case VAR_SPECIAL: if (!want_bool && in_vim9script()) { - emsg(_("E611: Using a Special as a Number")); + if (varp->v_type == VAR_BOOL) + emsg(_(e_using_bool_as_number)); + else + emsg(_("E611: Using a Special as a Number")); break; } return varp->vval.v_number == VVAL_TRUE ? 1 : 0; diff --git a/src/version.c b/src/version.c index 80d2af9db..0f0ccda25 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2012, /**/ 2011, /**/