diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-12-08 15:32:33 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-12-08 15:32:33 +0000 |
commit | 00b28d6c23d8e662cab27e461825777c0a2e387a (patch) | |
tree | ba11ed85b20cf03491e0f24b6d5bf348d2c19388 /src/evalfunc.c | |
parent | 038e6d20e680ce8c850d07f6b035c4e1904c1201 (diff) |
patch 9.0.1031: Vim9 class is not implemented yetv9.0.1031
Problem: Vim9 class is not implemented yet.
Solution: Add very basic class support.
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 84df6a62aa..3db4bb7b24 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -3770,6 +3770,12 @@ f_empty(typval_T *argvars, typval_T *rettv) case VAR_SPECIAL: n = argvars[0].vval.v_number != VVAL_TRUE; break; + case VAR_CLASS: + n = argvars[0].vval.v_class != NULL; + break; + case VAR_OBJECT: + n = argvars[0].vval.v_object != NULL; + break; case VAR_BLOB: n = argvars[0].vval.v_blob == NULL @@ -7267,6 +7273,8 @@ f_len(typval_T *argvars, typval_T *rettv) case VAR_JOB: case VAR_CHANNEL: case VAR_INSTR: + case VAR_CLASS: + case VAR_OBJECT: emsg(_(e_invalid_type_for_len)); break; } @@ -10183,7 +10191,9 @@ f_substitute(typval_T *argvars, typval_T *rettv) if (argvars[2].v_type == VAR_FUNC || argvars[2].v_type == VAR_PARTIAL - || argvars[2].v_type == VAR_INSTR) + || argvars[2].v_type == VAR_INSTR + || argvars[2].v_type == VAR_CLASS + || argvars[2].v_type == VAR_OBJECT) expr = &argvars[2]; else sub = tv_get_string_buf_chk(&argvars[2], subbuf); @@ -10617,6 +10627,8 @@ f_type(typval_T *argvars, typval_T *rettv) case VAR_CHANNEL: n = VAR_TYPE_CHANNEL; break; case VAR_BLOB: n = VAR_TYPE_BLOB; break; case VAR_INSTR: n = VAR_TYPE_INSTR; break; + case VAR_CLASS: n = VAR_TYPE_CLASS; break; + case VAR_OBJECT: n = VAR_TYPE_OBJECT; break; case VAR_UNKNOWN: case VAR_ANY: case VAR_VOID: |