blob: 4c733d52354ab5f1e712425817737d92321d7637 [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_free(typealias_T *ta);
11void typealias_unref(typealias_T *ta);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +000012void ex_type(exarg_T *eap);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000013int class_object_index(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int verbose);
Bram Moolenaar7ce7daf2022-12-10 18:42:12 +000014ufunc_T *find_class_func(char_u **arg);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020015int class_member_idx(class_T *cl, char_u *name, size_t namelen);
16ocmember_T *class_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
17int class_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020018ocmember_T *object_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
19int object_method_idx(class_T *cl, char_u *name, size_t namelen);
Yegappan Lakshmananf36bbcd2023-09-10 18:19:06 +020020ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
21ufunc_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 +000022int inside_class(cctx_T *cctx_arg, class_T *cl);
Yegappan Lakshmanane5437c52023-12-16 14:11:19 +010023int oc_var_check_ro(class_T *cl, ocmember_T *m);
24void obj_lock_const_vars(object_T *obj);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000025void copy_object(typval_T *from, typval_T *to);
Bram Moolenaar00b28d62022-12-08 15:32:33 +000026void copy_class(typval_T *from, typval_T *to);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000027void class_unref(class_T *cl);
Yegappan Lakshmanane651e112023-09-04 07:51:01 +020028int class_free_nonref(int copyID);
29int set_ref_in_classes(int copyID);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000030void object_created(object_T *obj);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020031void object_unref(object_T *obj);
Bram Moolenaard28d7b92022-12-08 20:42:00 +000032int object_free_nonref(int copyID);
Yegappan Lakshmanan29bb67f2023-10-14 11:18:50 +020033void object_free_items(int copyID);
Christian Brabandt6a950da2024-01-01 20:18:36 +010034void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl);
Yegappan Lakshmananc30a90d2023-09-15 20:14:55 +020035void method_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
36void member_not_found_msg(class_T *cl, vartype_T v_type, char_u *name, size_t len);
Yegappan Lakshmanan4f32c832024-01-12 17:36:40 +010037void defcompile_class(class_T *cl);
38void defcompile_classes_in_script(void);
39int is_class_name(char_u *name, typval_T *rettv);
Yegappan Lakshmanand3eae7b2024-03-03 16:26:58 +010040void protected_method_access_errmsg(char_u *method_name);
41int object_empty(object_T *obj);
42int object_len(object_T *obj);
LemonBoy7b29cc92024-06-22 17:25:07 +020043int object_equal(object_T *o1, object_T *o2, int ic, int recursive);
Yegappan Lakshmanan22029ed2024-05-20 13:57:11 +020044char_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 +020045int class_instance_of(class_T *cl, class_T *other_cl);
Christian Brabandt6a950da2024-01-01 20:18:36 +010046void f_instanceof(typval_T *argvars, typval_T *rettv);
Bram Moolenaarc1c365c2022-12-04 20:13:24 +000047/* vim: set ft=c : */