comparison src/proto/vim9class.pro @ 34472:5c1a025192ed v9.1.0148

patch 9.1.0148: Vim9: can't call internal methods with objects Commit: https://github.com/vim/vim/commit/d3eae7bc116297f70220f21ded436ed0a88066d8 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sun Mar 3 16:26:58 2024 +0100 patch 9.1.0148: Vim9: can't call internal methods with objects Problem: Vim9: can't call internal methods with objects Solution: Add support for empty(), len() and string() function calls for objects (Yegappan Lakshmanan) closes: #14129 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 03 Mar 2024 16:45:06 +0100
parents 0f2632b04cde
children 5b25ec43f208
comparison
equal deleted inserted replaced
34471:7f6302969e3d 34472:5c1a025192ed
1 /* vim9class.c */ 1 /* vim9class.c */
2 int object_index_from_itf_index(class_T *itf, int is_method, int idx, class_T *cl); 2 int object_index_from_itf_index(class_T *itf, int is_method, int idx, class_T *cl);
3 int is_valid_builtin_obj_methodname(char_u *funcname);
4 ufunc_T *class_get_builtin_method(class_T *cl, class_builtin_T builtin_method, int *method_idx);
3 void ex_class(exarg_T *eap); 5 void ex_class(exarg_T *eap);
4 type_T *oc_member_type(class_T *cl, int is_object, char_u *name, char_u *name_end, int *member_idx); 6 type_T *oc_member_type(class_T *cl, int is_object, char_u *name, char_u *name_end, int *member_idx);
5 type_T *oc_member_type_by_idx(class_T *cl, int is_object, int member_idx); 7 type_T *oc_member_type_by_idx(class_T *cl, int is_object, int member_idx);
6 void ex_enum(exarg_T *eap); 8 void ex_enum(exarg_T *eap);
7 void typealias_free(typealias_T *ta); 9 void typealias_free(typealias_T *ta);
32 void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len); 34 void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
33 void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len); 35 void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
34 void defcompile_class(class_T *cl); 36 void defcompile_class(class_T *cl);
35 void defcompile_classes_in_script(void); 37 void defcompile_classes_in_script(void);
36 int is_class_name(char_u *name, typval_T *rettv); 38 int is_class_name(char_u *name, typval_T *rettv);
39 void protected_method_access_errmsg(char_u *method_name);
40 int object_empty(object_T *obj);
41 int object_len(object_T *obj);
42 char_u *object_string(object_T *obj, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int composite_val);
37 int class_instance_of(class_T *cl, class_T *other_cl); 43 int class_instance_of(class_T *cl, class_T *other_cl);
38 void f_instanceof(typval_T *argvars, typval_T *rettv); 44 void f_instanceof(typval_T *argvars, typval_T *rettv);
39 /* vim: set ft=c : */ 45 /* vim: set ft=c : */