# HG changeset patch # User Bram Moolenaar # Date 1609509603 -3600 # Node ID ab163feb30cbff961349805560ee93c0c9009345 # Parent d94ada879d70d858eb10c5e90b70d6db71b683e9 patch 8.2.2261: Vim9: boolean option gets string type Commit: https://github.com/vim/vim/commit/d5ea8f08f78d20fde8773663894de5e8c023bd83 Author: Bram Moolenaar Date: Fri Jan 1 14:49:15 2021 +0100 patch 8.2.2261: Vim9: boolean option gets string type Problem: Vim9: boolean option gets string type. Solution: Check for VAR_BOOL. (closes https://github.com/vim/vim/issues/7588) 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 @@ -2417,6 +2417,11 @@ def Test_expr7_option() &grepprg = test_null_string() assert_equal('', &grepprg) set grepprg& + + # check matching type + var bval: bool = &tgc + var nval: number = &ts + var sval: string = &path enddef def Test_expr7_environment() 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 */ /**/ + 2261, +/**/ 2260, /**/ 2259, diff --git a/src/vim9compile.c b/src/vim9compile.c --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -3172,8 +3172,9 @@ compile_get_option(char_u **arg, cctx_T if (ret == OK) { // include the '&' in the name, eval_option() expects it. - char_u *name = vim_strnsave(start, *arg - start); - type_T *type = rettv.v_type == VAR_NUMBER ? &t_number : &t_string; + char_u *name = vim_strnsave(start, *arg - start); + type_T *type = rettv.v_type == VAR_BOOL ? &t_bool + : rettv.v_type == VAR_NUMBER ? &t_number : &t_string; ret = generate_LOAD(cctx, ISN_LOADOPT, 0, name, type); vim_free(name);