comparison src/testing.c @ 19102:ba9f50bfda83 v8.2.0111

patch 8.2.0111: VAR_SPECIAL is also used for booleans Commit: https://github.com/vim/vim/commit/9b4a15d5dba354d2e1e02871470bad103f34769a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 11 16:05:23 2020 +0100 patch 8.2.0111: VAR_SPECIAL is also used for booleans Problem: VAR_SPECIAL is also used for booleans. Solution: Add VAR_BOOL for better type checking.
author Bram Moolenaar <Bram@vim.org>
date Sat, 11 Jan 2020 16:15:04 +0100
parents 847cc7932c42
children 94eda51ba9ba
comparison
equal deleted inserted replaced
19101:7c682fab000b 19102:ba9f50bfda83
220 assert_bool(typval_T *argvars, int isTrue) 220 assert_bool(typval_T *argvars, int isTrue)
221 { 221 {
222 int error = FALSE; 222 int error = FALSE;
223 garray_T ga; 223 garray_T ga;
224 224
225 if (argvars[0].v_type == VAR_SPECIAL 225 if (argvars[0].v_type == VAR_BOOL
226 && argvars[0].vval.v_number == (isTrue ? VVAL_TRUE : VVAL_FALSE)) 226 && argvars[0].vval.v_number == (isTrue ? VVAL_TRUE : VVAL_FALSE))
227 return 0; 227 return 0;
228 if (argvars[0].v_type != VAR_NUMBER 228 if (argvars[0].v_type != VAR_NUMBER
229 || (tv_get_number_chk(&argvars[0], &error) == 0) == isTrue 229 || (tv_get_number_chk(&argvars[0], &error) == 0) == isTrue
230 || error) 230 || error)
758 switch (argvars[0].v_type) 758 switch (argvars[0].v_type)
759 { 759 {
760 case VAR_UNKNOWN: 760 case VAR_UNKNOWN:
761 case VAR_NUMBER: 761 case VAR_NUMBER:
762 case VAR_FLOAT: 762 case VAR_FLOAT:
763 case VAR_BOOL:
763 case VAR_SPECIAL: 764 case VAR_SPECIAL:
764 case VAR_STRING: 765 case VAR_STRING:
765 break; 766 break;
766 case VAR_JOB: 767 case VAR_JOB:
767 #ifdef FEAT_JOB_CHANNEL 768 #ifdef FEAT_JOB_CHANNEL