comparison src/evalfunc.c @ 19548:9a9ca0e622c8 v8.2.0331

patch 8.2.0331: internal error when using test_void() and test_unknown() Commit: https://github.com/vim/vim/commit/7c215c58936cbebd4132ad6112d04db54b7c153e Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 29 13:43:27 2020 +0100 patch 8.2.0331: internal error when using test_void() and test_unknown() Problem: Internal error when using test_void() and test_unknown(). (Dominique Pelle) Solution: Give a normal error.
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Feb 2020 13:45:04 +0100
parents 22f0dda71638
children b38d73f36467
comparison
equal deleted inserted replaced
19547:2d657ba32b83 19548:9a9ca0e622c8
1888 || !channel_is_open(argvars[0].vval.v_channel); 1888 || !channel_is_open(argvars[0].vval.v_channel);
1889 break; 1889 break;
1890 #endif 1890 #endif
1891 case VAR_UNKNOWN: 1891 case VAR_UNKNOWN:
1892 case VAR_VOID: 1892 case VAR_VOID:
1893 internal_error("f_empty(UNKNOWN)"); 1893 // Let's not use internal_error() here, otherwise
1894 // empty(test_unknown()) with ABORT_ON_INTERNAL_ERROR defined makes
1895 // Vim abort.
1896 semsg(_(e_intern2), "f_empty(UNKNOWN)");
1894 n = TRUE; 1897 n = TRUE;
1895 break; 1898 break;
1896 } 1899 }
1897 1900
1898 rettv->vval.v_number = n; 1901 rettv->vval.v_number = n;
8273 case VAR_JOB: n = VAR_TYPE_JOB; break; 8276 case VAR_JOB: n = VAR_TYPE_JOB; break;
8274 case VAR_CHANNEL: n = VAR_TYPE_CHANNEL; break; 8277 case VAR_CHANNEL: n = VAR_TYPE_CHANNEL; break;
8275 case VAR_BLOB: n = VAR_TYPE_BLOB; break; 8278 case VAR_BLOB: n = VAR_TYPE_BLOB; break;
8276 case VAR_UNKNOWN: 8279 case VAR_UNKNOWN:
8277 case VAR_VOID: 8280 case VAR_VOID:
8278 internal_error("f_type(UNKNOWN)"); 8281 // Let's not use internal_error() here, otherwise
8282 // empty(test_unknown()) with ABORT_ON_INTERNAL_ERROR defined
8283 // makes Vim abort.
8284 semsg(_(e_intern2), "f_type(UNKNOWN)");
8279 n = -1; 8285 n = -1;
8280 break; 8286 break;
8281 } 8287 }
8282 rettv->vval.v_number = n; 8288 rettv->vval.v_number = n;
8283 } 8289 }