0
0
mirror of https://github.com/vim/vim.git synced 2025-10-19 08:04:27 -04:00

patch 9.0.1786: Vim9: need instanceof() function

Problem:  Vim9: need instanceof() function
Solution: Implement instanceof() builtin

Implemented in the same form as Python's isinstance because it allows
for checking multiple class types at the same time.

closes: #12867

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: LemonBoy <thatlemon@gmail.com>
This commit is contained in:
LemonBoy
2023-08-23 21:08:11 +02:00
committed by Christian Brabandt
parent 1193951beb
commit afe0466fb1
13 changed files with 212 additions and 19 deletions

View File

@@ -534,7 +534,13 @@ EXTERN int garbage_collect_at_exit INIT(= FALSE);
#define t_super (static_types[80])
#define t_const_super (static_types[81])
EXTERN type_T static_types[82]
#define t_object (static_types[82])
#define t_const_object (static_types[83])
#define t_class (static_types[84])
#define t_const_class (static_types[85])
EXTERN type_T static_types[86]
#ifdef DO_INIT
= {
// 0: t_unknown
@@ -700,6 +706,14 @@ EXTERN type_T static_types[82]
// 80: t_super (VAR_CLASS with tt_member set to &t_bool
{VAR_CLASS, 0, 0, TTFLAG_STATIC, &t_bool, NULL, NULL},
{VAR_CLASS, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_bool, NULL, NULL},
// 82: t_object
{VAR_OBJECT, 0, 0, TTFLAG_STATIC, NULL, NULL, NULL},
{VAR_OBJECT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL, NULL},
// 84: t_class
{VAR_CLASS, 0, 0, TTFLAG_STATIC, NULL, NULL, NULL},
{VAR_CLASS, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL, NULL},
}
#endif
;