|| opt_type == gov_hidden_bool
|| opt_type == gov_hidden_number)
&& (tv->v_type != VAR_STRING || !in_vim9script()))
- // number, possibly hidden
- n = (long)tv_get_number(tv);
+ {
+ if (opt_type == gov_bool || opt_type == gov_hidden_bool)
+ // bool, possibly hidden
+ n = (long)tv_get_bool(tv);
+ else
+ // number, possibly hidden
+ n = (long)tv_get_number(tv);
+ }
// Avoid setting a string option to the text "v:false" or similar.
// In Vim9 script also don't convert a number to string.
assert_equal(6, &g:ts)
&g:ts += 2
assert_equal(8, &g:ts)
+
+ &number = true
+ assert_equal(true, &number)
+ &number = 0
+ assert_equal(false, &number)
+ &number = 1
+ assert_equal(true, &number)
+ &number = false
+ assert_equal(false, &number)
END
CheckDefAndScriptSuccess(lines)