comparison src/proto/userfunc.pro @ 23527:27ca5534a408 v8.2.2306

patch 8.2.2306: Vim9: when using function reference type is not checked Commit: https://github.com/vim/vim/commit/32b3f820107139d7edf0c592bb06f090c3eb6c51 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jan 6 21:59:39 2021 +0100 patch 8.2.2306: Vim9: when using function reference type is not checked Problem: Vim9: when using function reference type is not checked. Solution: When using a function reference lookup the type and check the argument types. (issue #7629)
author Bram Moolenaar <Bram@vim.org>
date Wed, 06 Jan 2021 22:00:06 +0100
parents 7e8703464f01
children bf1a7ce3f14a
comparison
equal deleted inserted replaced
23526:22fd43db29c8 23527:27ca5534a408
2 void func_init(void); 2 void func_init(void);
3 hashtab_T *func_tbl_get(void); 3 hashtab_T *func_tbl_get(void);
4 char_u *get_lambda_name(void); 4 char_u *get_lambda_name(void);
5 char_u *register_cfunc(cfunc_T cb, cfunc_free_T cb_free, void *state); 5 char_u *register_cfunc(cfunc_T cb, cfunc_free_T cb_free, void *state);
6 int get_lambda_tv(char_u **arg, typval_T *rettv, int types_optional, evalarg_T *evalarg); 6 int get_lambda_tv(char_u **arg, typval_T *rettv, int types_optional, evalarg_T *evalarg);
7 char_u *deref_func_name(char_u *name, int *lenp, partial_T **partialp, int no_autoload); 7 char_u *deref_func_name(char_u *name, int *lenp, partial_T **partialp, type_T **type, int no_autoload);
8 void emsg_funcname(char *ermsg, char_u *name); 8 void emsg_funcname(char *ermsg, char_u *name);
9 int get_func_tv(char_u *name, int len, typval_T *rettv, char_u **arg, evalarg_T *evalarg, funcexe_T *funcexe); 9 int get_func_tv(char_u *name, int len, typval_T *rettv, char_u **arg, evalarg_T *evalarg, funcexe_T *funcexe);
10 char_u *fname_trans_sid(char_u *name, char_u *fname_buf, char_u **tofree, int *error); 10 char_u *fname_trans_sid(char_u *name, char_u *fname_buf, char_u **tofree, int *error);
11 ufunc_T *find_func_even_dead(char_u *name, int is_global, cctx_T *cctx); 11 ufunc_T *find_func_even_dead(char_u *name, int is_global, cctx_T *cctx);
12 ufunc_T *find_func(char_u *name, int is_global, cctx_T *cctx); 12 ufunc_T *find_func(char_u *name, int is_global, cctx_T *cctx);
29 int get_callback_depth(void); 29 int get_callback_depth(void);
30 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars); 30 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars);
31 void user_func_error(int error, char_u *name); 31 void user_func_error(int error, char_u *name);
32 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe); 32 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe);
33 char_u *printable_func_name(ufunc_T *fp); 33 char_u *printable_func_name(ufunc_T *fp);
34 char_u *trans_function_name(char_u **pp, int *is_global, int skip, int flags, funcdict_T *fdp, partial_T **partial); 34 char_u *trans_function_name(char_u **pp, int *is_global, int skip, int flags, funcdict_T *fdp, partial_T **partial, type_T **type);
35 char_u *untrans_function_name(char_u *name); 35 char_u *untrans_function_name(char_u *name);
36 void list_functions(regmatch_T *regmatch); 36 void list_functions(regmatch_T *regmatch);
37 ufunc_T *define_function(exarg_T *eap, char_u *name_arg); 37 ufunc_T *define_function(exarg_T *eap, char_u *name_arg);
38 void ex_function(exarg_T *eap); 38 void ex_function(exarg_T *eap);
39 void ex_defcompile(exarg_T *eap); 39 void ex_defcompile(exarg_T *eap);