Mercurial > vim
diff src/structs.h @ 33297:6340c608ca54 v9.0.1914
patch 9.0.1914: Vim9: few issues when accessing object members
Commit: https://github.com/vim/vim/commit/1db151436541a3e64cdd5e3d9eb3ace1ce1e1ad0
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Tue Sep 19 20:34:05 2023 +0200
patch 9.0.1914: Vim9: few issues when accessing object members
Problem: Vim9: few issues when accessing object members
Solution: When calling an object method, check for null object.
Accessing a Dict object member doesn't work.
closes: #13119
closes: #13123
closes: #13124
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Sep 2023 20:45:06 +0200 |
parents | aba1fa2b7d1e |
children | 016d8f863230 |
line wrap: on
line diff
--- a/src/structs.h +++ b/src/structs.h @@ -1881,6 +1881,13 @@ struct ufunc_S #define FC_NEW 0x8000 // constructor #define FC_ABSTRACT 0x10000 // abstract method +// Is "ufunc" an object method? +#define IS_OBJECT_METHOD(ufunc) ((ufunc->uf_flags & FC_OBJECT) == FC_OBJECT) +// Is "ufunc" a class new() constructor method? +#define IS_CONSTRUCTOR_METHOD(ufunc) ((ufunc->uf_flags & FC_NEW) == FC_NEW) +// Is "ufunc" an abstract class method? +#define IS_ABSTRACT_METHOD(ufunc) ((ufunc->uf_flags & FC_ABSTRACT) == FC_ABSTRACT) + #define MAX_FUNC_ARGS 20 // maximum number of function arguments #define VAR_SHORT_LEN 20 // short variable name length #define FIXVAR_CNT 12 // number of fixed variables