blob: d59caa0673ca80a6e74c4baf84d87b292d773817 [file] [log] [blame]
Bram Moolenaarc1c365c2022-12-04 20:13:24 +00001/* vim9class.c */
Yegappan Lakshmanan5a05d372023-09-29 19:43:11 +02002int object_index_from_itf_index(class_T *itf, int is_method, int idx, class_T *cl);
Yegappan Lakshmanand3eae7b2024-03-03 16:26:58 +01003int is_valid_builtin_obj_methodname(char_u *funcname);
4ufunc_T *class_get_builtin_method(class_T *cl, class_builtin_T builtin_method, int *method_idx);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +00005void ex_class(exarg_T *eap);
Yegappan Lakshmanan3164cf82024-03-28 10:36:42 +01006void enum_set_internal_obj_vars(class_T *en, object_T *enval);
Yegappan Lakshmanan1ea42882023-10-11 21:43:52 +02007type_T *oc_member_type(class_T *cl, int is_object, char_u *name, char_u *name_end, int *member_idx);
8type_T *oc_member_type_by_idx(class_T *cl, int is_object, int member_idx);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +00009void ex_enum(exarg_T *eap);
Yegappan Lakshmananec3cebb2023-10-27 19:35:26 +020010void typealias_unref(typealias_T *ta);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +000011void ex_type(exarg_T *eap);
Yegappan Lakshmanan56d45f12024-11-11 19:58:55 +010012int get_member_tv(class_T *cl, int is_object, char_u *name, size_t namelen, class_T *current_class, typval_T *rettv);
13int obj_method_to_partial_tv(object_T *obj, ufunc_T *obj_method, typval_T *rettv);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000014int class_object_index(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int verbose);
Bram Moolenaar7ce7daf2022-12-10 18:42:12 +000015ufunc_T *find_class_func(char_u **arg);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020016int class_member_idx(class_T *cl, char_u *name, size_t namelen);
17ocmember_T *class_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
18int class_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020019ocmember_T *object_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
20int object_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020021ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
22ufunc_T *method_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
Bram Moolenaar62a69232023-01-24 15:07:04 +000023int inside_class(cctx_T *cctx_arg, class_T *cl);
Yegappan Lakshmanane5437c52023-12-16 14:11:19 +010024int oc_var_check_ro(class_T *cl, ocmember_T *m);
25void obj_lock_const_vars(object_T *obj);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000026void copy_object(typval_T *from, typval_T *to);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000027void copy_class(typval_T *from, typval_T *to);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000028void class_unref(class_T *cl);
Yegappan Lakshmanane651e112023-09-04 07:51:01 +020029int class_free_nonref(int copyID);
30int set_ref_in_classes(int copyID);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000031void object_created(object_T *obj);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020032void object_unref(object_T *obj);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000033int object_free_nonref(int copyID);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020034void object_free_items(int copyID);
Christian Brabandt6a950da2024-01-01 20:18:36 +010035void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl);
Yegappan Lakshmananc30a90d2023-09-15 20:14:55 +020036void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
37void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
Yegappan Lakshmanan4f32c832024-01-12 17:36:40 +010038void defcompile_class(class_T *cl);
39void defcompile_classes_in_script(void);
40int is_class_name(char_u *name, typval_T *rettv);
Yegappan Lakshmanand3eae7b2024-03-03 16:26:58 +010041void protected_method_access_errmsg(char_u *method_name);
42int object_empty(object_T *obj);
43int object_len(object_T *obj);
Yinzuo Jiang7ccd1a22024-07-04 17:20:53 +020044int object_equal(object_T *o1, object_T *o2, int ic);
Yegappan Lakshmanan22029ed2024-05-20 13:57:11 +020045char_u *object2string(object_T *obj, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int composite_val);
Yegappan Lakshmananb32064f2023-10-02 21:43:58 +020046int class_instance_of(class_T *cl, class_T *other_cl);
Christian Brabandt6a950da2024-01-01 20:18:36 +010047void f_instanceof(typval_T *argvars, typval_T *rettv);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +000048/* vim: set ft=c : */