forked from aniani/vim
patch 8.2.0677: Vim9: no support for closures
Problem: Vim9: no support for closures. Solution: Find variables in the outer function scope, so long as the scope exists.
This commit is contained in:
@@ -14,19 +14,6 @@
|
||||
#include "vim.h"
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
// flags used in uf_flags
|
||||
#define FC_ABORT 0x01 // abort function on error
|
||||
#define FC_RANGE 0x02 // function accepts range
|
||||
#define FC_DICT 0x04 // Dict function, uses "self"
|
||||
#define FC_CLOSURE 0x08 // closure, uses outer scope variables
|
||||
#define FC_DELETED 0x10 // :delfunction used while uf_refcount > 0
|
||||
#define FC_REMOVED 0x20 // function redefined while uf_refcount > 0
|
||||
#define FC_SANDBOX 0x40 // function defined in the sandbox
|
||||
#define FC_DEAD 0x80 // function kept only for reference to dfunc
|
||||
#define FC_EXPORT 0x100 // "export def Func()"
|
||||
#define FC_NOARGS 0x200 // no a: variables in lambda
|
||||
#define FC_VIM9 0x400 // defined in vim9 script file
|
||||
|
||||
/*
|
||||
* All user-defined functions are found in this hashtable.
|
||||
*/
|
||||
@@ -3267,7 +3254,7 @@ ex_function(exarg_T *eap)
|
||||
|
||||
// ":def Func()" needs to be compiled
|
||||
if (eap->cmdidx == CMD_def)
|
||||
compile_def_function(fp, FALSE);
|
||||
compile_def_function(fp, FALSE, NULL);
|
||||
|
||||
goto ret_free;
|
||||
|
||||
|
Reference in New Issue
Block a user