Mercurial > vim
diff src/globals.h @ 32972:e4851934751a
patch 9.0.1786: Vim9: need instanceof() function
Commit: https://github.com/vim/vim/commit/afe0466fb1695fa8b9782eea8a8e9f9540d4cb85
Author: LemonBoy <thatlemon@gmail.com>
Date: Wed Aug 23 21:08:11 2023 +0200
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 23 Aug 2023 21:15:08 +0200 |
parents | 22a08166a876 |
children | 016d8f863230 |
line wrap: on
line diff
--- a/src/globals.h +++ b/src/globals.h @@ -534,7 +534,13 @@ EXTERN int garbage_collect_at_exit INIT( #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 ;