Mercurial > vim
diff src/structs.h @ 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 | bc2c9ea94ec1 |
children | 9f921ba86d05 |
line wrap: on
line diff
--- a/src/structs.h +++ b/src/structs.h @@ -1516,6 +1516,9 @@ struct blobvar_S #if defined(FEAT_EVAL) || defined(PROTO) typedef struct funccall_S funccall_T; +# define UF_NOT_COMPILED -2 +# define UF_TO_BE_COMPILED -1 + /* * Structure to hold info for a user function. */ @@ -1525,7 +1528,7 @@ typedef struct int uf_flags; // FC_ flags int uf_calls; // nr of active calls int uf_cleared; // func_clear() was already called - int uf_dfunc_idx; // >= 0 for :def function only + int uf_dfunc_idx; // UF_NOT_COMPILED, UF_TO_BE_COMPILED or >= 0 garray_T uf_args; // arguments, including optional arguments garray_T uf_def_args; // default argument expressions