diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2024-01-12 17:36:40 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-01-12 17:41:09 +0100 |
commit | 4f32c83a775a195ae7e1545b2840fb773f93414f (patch) | |
tree | d9519e67920220913c08fee59ccc63f7c37572c0 /src/proto | |
parent | 8610f74382039c9c54d6c4aeb978d252e762360a (diff) |
patch 9.1.0020: Vim9: cannot compile all methods in a classv9.1.0020
Problem: Vim9: cannot compile all methods in a class
Solution: Support compiling all the methods in a class using :defcompile
(Yegappan Lakshmanan)
closes: #13844
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/proto')
-rw-r--r-- | src/proto/userfunc.pro | 1 | ||||
-rw-r--r-- | src/proto/vim9class.pro | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro index e393c04707..9bb461663e 100644 --- a/src/proto/userfunc.pro +++ b/src/proto/userfunc.pro @@ -50,6 +50,7 @@ void list_functions(regmatch_T *regmatch); ufunc_T *define_function(exarg_T *eap, char_u *name_arg, garray_T *lines_to_free, int class_flags, ocmember_T *obj_members, int obj_member_count); void ex_function(exarg_T *eap); ufunc_T *find_func_by_name(char_u *name, compiletype_T *compile_type); +void defcompile_function(ufunc_T *ufunc, class_T *cl); void ex_defcompile(exarg_T *eap); int eval_fname_script(char_u *p); int translated_function_exists(char_u *name, int is_global); diff --git a/src/proto/vim9class.pro b/src/proto/vim9class.pro index f1b63602a7..a746eb7729 100644 --- a/src/proto/vim9class.pro +++ b/src/proto/vim9class.pro @@ -31,6 +31,9 @@ void object_free_items(int copyID); void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl); void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len); void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len); +void defcompile_class(class_T *cl); +void defcompile_classes_in_script(void); +int is_class_name(char_u *name, typval_T *rettv); int class_instance_of(class_T *cl, class_T *other_cl); void f_instanceof(typval_T *argvars, typval_T *rettv); /* vim: set ft=c : */ |