Mercurial > vim
comparison src/proto/userfunc.pro @ 20528:489cb75c76b6 v8.2.0818
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Commit: https://github.com/vim/vim/commit/822ba24743af9ee1b5e7f656a7a61a38f3638bca
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 24 23:00:18 2020 +0200
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Problem: Vim9: using a discovery phase doesn't work well.
Solution: Remove the discovery phase, instead compile a function only when
it is used. Add :defcompile to compile def functions earlier.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 24 May 2020 23:15:04 +0200 |
parents | 7587d892c00c |
children | ae185f35e256 |
comparison
equal
deleted
inserted
replaced
20527:37ac4c5b4d27 | 20528:489cb75c76b6 |
---|---|
21 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars); | 21 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars); |
22 void user_func_error(int error, char_u *name); | 22 void user_func_error(int error, char_u *name); |
23 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe); | 23 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe); |
24 char_u *trans_function_name(char_u **pp, int *is_global, int skip, int flags, funcdict_T *fdp, partial_T **partial); | 24 char_u *trans_function_name(char_u **pp, int *is_global, int skip, int flags, funcdict_T *fdp, partial_T **partial); |
25 char_u *untrans_function_name(char_u *name); | 25 char_u *untrans_function_name(char_u *name); |
26 ufunc_T *def_function(exarg_T *eap, char_u *name_arg, void *context, int compile); | 26 ufunc_T *def_function(exarg_T *eap, char_u *name_arg); |
27 void ex_function(exarg_T *eap); | 27 void ex_function(exarg_T *eap); |
28 void ex_defcompile(exarg_T *eap); | |
28 int eval_fname_script(char_u *p); | 29 int eval_fname_script(char_u *p); |
29 int translated_function_exists(char_u *name, int is_global); | 30 int translated_function_exists(char_u *name, int is_global); |
30 int has_varargs(ufunc_T *ufunc); | 31 int has_varargs(ufunc_T *ufunc); |
31 int function_exists(char_u *name, int no_deref); | 32 int function_exists(char_u *name, int no_deref); |
32 char_u *get_expanded_name(char_u *name, int check); | 33 char_u *get_expanded_name(char_u *name, int check); |