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>
diff --git a/src/globals.h b/src/globals.h
index c1e2d6f..68e7ef2 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -534,7 +534,13 @@
#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 @@
// 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
;