diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-06-15 22:13:27 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-06-15 22:13:27 +0200 |
commit | f57b43c230c23117650c956c1f62546a34500fb6 (patch) | |
tree | 0a854ddfab96d08e0eb10c733bc30ca1a0be174b /src/typval.c | |
parent | 8ac681a280ffae14c30784a54587ad6cb640afbb (diff) | |
download | vim-git-f57b43c230c23117650c956c1f62546a34500fb6.tar.gz |
patch 8.2.3005: Vim9: using a void value does not give a proper error messagev8.2.3005
Problem: Vim9: using a void value does not give a proper error message.
Solution: Give a clear error message. (clodes #8387)
Diffstat (limited to 'src/typval.c')
-rw-r--r-- | src/typval.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/typval.c b/src/typval.c index a17dbef7e..b19140d44 100644 --- a/src/typval.c +++ b/src/typval.c @@ -238,9 +238,11 @@ tv_get_bool_or_number_chk(typval_T *varp, int *denote, int want_bool) case VAR_BLOB: emsg(_("E974: Using a Blob as a Number")); break; + case VAR_VOID: + emsg(_(e_cannot_use_void_value)); + break; case VAR_UNKNOWN: case VAR_ANY: - case VAR_VOID: case VAR_INSTR: internal_error_no_abort("tv_get_number(UNKNOWN)"); break; @@ -294,7 +296,7 @@ tv_get_bool_chk(typval_T *varp, int *denote) return tv_get_bool_or_number_chk(varp, denote, TRUE); } -#ifdef FEAT_FLOAT +#if defined(FEAT_FLOAT) || defined(PROTO) float_T tv_get_float(typval_T *varp) { @@ -336,9 +338,11 @@ tv_get_float(typval_T *varp) case VAR_BLOB: emsg(_("E975: Using a Blob as a Float")); break; + case VAR_VOID: + emsg(_(e_cannot_use_void_value)); + break; case VAR_UNKNOWN: case VAR_ANY: - case VAR_VOID: case VAR_INSTR: internal_error_no_abort("tv_get_float(UNKNOWN)"); break; @@ -501,9 +505,11 @@ tv_get_string_buf_chk_strict(typval_T *varp, char_u *buf, int strict) return channel_to_string_buf(varp, buf); #endif break; + case VAR_VOID: + emsg(_(e_cannot_use_void_value)); + break; case VAR_UNKNOWN: case VAR_ANY: - case VAR_VOID: case VAR_INSTR: semsg(_(e_using_invalid_value_as_string_str), vartype_name(varp->v_type)); @@ -585,6 +591,7 @@ copy_tv(typval_T *from, typval_T *to) case VAR_NUMBER: case VAR_BOOL: case VAR_SPECIAL: + case VAR_VOID: to->vval.v_number = from->vval.v_number; break; case VAR_FLOAT: @@ -659,7 +666,6 @@ copy_tv(typval_T *from, typval_T *to) break; case VAR_UNKNOWN: case VAR_ANY: - case VAR_VOID: internal_error_no_abort("copy_tv(UNKNOWN)"); break; } |