# HG changeset patch # User Bram Moolenaar # Date 1605717004 -3600 # Node ID 84567584951f79689f417eed75318f5a17ea61b5 # Parent 401512a04eec3aa65598f77f6bbb1ea4c8c0354d patch 8.2.2012: Vim9: confusing error message when using bool wrongly Commit: https://github.com/vim/vim/commit/d92cc130fbb1beacf6411ee5837545f46f9be90e Author: Bram Moolenaar Date: Wed Nov 18 17:17:15 2020 +0100 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 https://github.com/vim/vim/issues/7323) diff --git a/src/errors.h b/src/errors.h --- a/src/errors.h +++ b/src/errors.h @@ -301,3 +301,5 @@ EXTERN char e_cmd_mapping_must_end_with_ 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 --- 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 --- a/src/typval.c +++ b/src/typval.c @@ -213,7 +213,10 @@ tv_get_bool_or_number_chk(typval_T *varp 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 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2012, +/**/ 2011, /**/ 2010,