mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 9.0.0470: in :def function all closures in loop get the same variables
Problem: In a :def function all closures in a loop get the same variables. Solution: When in a loop and a closure refers to a variable declared in the loop, prepare for making a copy of variables for each closure.
This commit is contained in:
@@ -3449,8 +3449,14 @@ nextline:
|
||||
}
|
||||
dfunc->df_varcount = dfunc->df_var_names.ga_len;
|
||||
dfunc->df_has_closure = cctx.ctx_has_closure;
|
||||
|
||||
if (cctx.ctx_outer_used)
|
||||
{
|
||||
ufunc->uf_flags |= FC_CLOSURE;
|
||||
if (outer_cctx != NULL)
|
||||
++outer_cctx->ctx_closure_count;
|
||||
}
|
||||
|
||||
ufunc->uf_def_status = UF_COMPILED;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user