1
0
forked from aniani/vim

patch 9.0.1188: return value of type() for class and object unclear

Problem:    Return value of type() for class and object unclear.
Solution:   Add v:t_object and v:t_class.
This commit is contained in:
Bram Moolenaar
2023-01-12 21:08:53 +00:00
parent 3ce33b120c
commit c0c2c26265
6 changed files with 36 additions and 17 deletions

View File

@@ -139,6 +139,8 @@ static struct vimvar
{VV_NAME("t_job", VAR_NUMBER), NULL, VV_RO},
{VV_NAME("t_channel", VAR_NUMBER), NULL, VV_RO},
{VV_NAME("t_blob", VAR_NUMBER), NULL, VV_RO},
{VV_NAME("t_class", VAR_NUMBER), NULL, VV_RO},
{VV_NAME("t_object", VAR_NUMBER), NULL, VV_RO},
{VV_NAME("termrfgresp", VAR_STRING), NULL, VV_RO},
{VV_NAME("termrbgresp", VAR_STRING), NULL, VV_RO},
{VV_NAME("termu7resp", VAR_STRING), NULL, VV_RO},
@@ -255,6 +257,8 @@ evalvars_init(void)
set_vim_var_nr(VV_TYPE_JOB, VAR_TYPE_JOB);
set_vim_var_nr(VV_TYPE_CHANNEL, VAR_TYPE_CHANNEL);
set_vim_var_nr(VV_TYPE_BLOB, VAR_TYPE_BLOB);
set_vim_var_nr(VV_TYPE_CLASS, VAR_TYPE_CLASS);
set_vim_var_nr(VV_TYPE_OBJECT, VAR_TYPE_OBJECT);
set_vim_var_nr(VV_ECHOSPACE, sc_col - 1);

View File

@@ -155,6 +155,11 @@ def Test_class_basic()
# call an object method
assert_equal('(2, 12)', pos.ToString())
assert_equal(v:t_class, type(TextPosition))
assert_equal(v:t_object, type(pos))
assert_equal('class<TextPosition>', typename(TextPosition))
assert_equal('object<TextPosition>', typename(pos))
END
v9.CheckScriptSuccess(lines)
enddef

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1188,
/**/
1187,
/**/

View File

@@ -2083,23 +2083,25 @@ typedef int sock_T;
#define VV_TYPE_JOB 85
#define VV_TYPE_CHANNEL 86
#define VV_TYPE_BLOB 87
#define VV_TERMRFGRESP 88
#define VV_TERMRBGRESP 89
#define VV_TERMU7RESP 90
#define VV_TERMSTYLERESP 91
#define VV_TERMBLINKRESP 92
#define VV_EVENT 93
#define VV_VERSIONLONG 94
#define VV_ECHOSPACE 95
#define VV_ARGV 96
#define VV_COLLATE 97
#define VV_EXITING 98
#define VV_COLORNAMES 99
#define VV_SIZEOFINT 100
#define VV_SIZEOFLONG 101
#define VV_SIZEOFPOINTER 102
#define VV_MAXCOL 103
#define VV_LEN 104 // number of v: vars
#define VV_TYPE_CLASS 88
#define VV_TYPE_OBJECT 89
#define VV_TERMRFGRESP 90
#define VV_TERMRBGRESP 91
#define VV_TERMU7RESP 92
#define VV_TERMSTYLERESP 93
#define VV_TERMBLINKRESP 94
#define VV_EVENT 95
#define VV_VERSIONLONG 96
#define VV_ECHOSPACE 97
#define VV_ARGV 98
#define VV_COLLATE 99
#define VV_EXITING 100
#define VV_COLORNAMES 101
#define VV_SIZEOFINT 102
#define VV_SIZEOFLONG 103
#define VV_SIZEOFPOINTER 104
#define VV_MAXCOL 105
#define VV_LEN 106 // number of v: vars
// used for v_number in VAR_BOOL and VAR_SPECIAL
#define VVAL_FALSE 0L // VAR_BOOL