blob: 7d11523cef200e3f797fda481503c9509553138c [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);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000012int class_object_index(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int verbose);
Bram Moolenaar7ce7daf2022-12-10 18:42:12 +000013ufunc_T *find_class_func(char_u **arg);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020014int class_member_idx(class_T *cl, char_u *name, size_t namelen);
15ocmember_T *class_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
16int class_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020017ocmember_T *object_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
18int object_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020019ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
20ufunc_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 +000021int inside_class(cctx_T *cctx_arg, class_T *cl);
Yegappan Lakshmanane5437c52023-12-16 14:11:19 +010022int oc_var_check_ro(class_T *cl, ocmember_T *m);
23void obj_lock_const_vars(object_T *obj);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000024void copy_object(typval_T *from, typval_T *to);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000025void copy_class(typval_T *from, typval_T *to);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000026void class_unref(class_T *cl);
Yegappan Lakshmanane651e112023-09-04 07:51:01 +020027int class_free_nonref(int copyID);
28int set_ref_in_classes(int copyID);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000029void object_created(object_T *obj);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020030void object_unref(object_T *obj);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000031int object_free_nonref(int copyID);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020032void object_free_items(int copyID);
Christian Brabandt6a950da2024-01-01 20:18:36 +010033void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl);
Yegappan Lakshmananc30a90d2023-09-15 20:14:55 +020034void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
35void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
Yegappan Lakshmanan4f32c832024-01-12 17:36:40 +010036void defcompile_class(class_T *cl);
37void defcompile_classes_in_script(void);
38int is_class_name(char_u *name, typval_T *rettv);
Yegappan Lakshmanand3eae7b2024-03-03 16:26:58 +010039void protected_method_access_errmsg(char_u *method_name);
40int object_empty(object_T *obj);
41int object_len(object_T *obj);
Yinzuo Jiang7ccd1a22024-07-04 17:20:53 +020042int object_equal(object_T *o1, object_T *o2, int ic);
Yegappan Lakshmanan22029ed2024-05-20 13:57:11 +020043char_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 +020044int class_instance_of(class_T *cl, class_T *other_cl);
Christian Brabandt6a950da2024-01-01 20:18:36 +010045void f_instanceof(typval_T *argvars, typval_T *rettv);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +000046/* vim: set ft=c : */