Problem: Vim9: crash when using a funcref to a closure.
Solution: Copy pt_outer to the new partial. (closes #9714)
pt->pt_name = name;
func_ref(name);
}
+
+ if (arg_pt != NULL)
+ pt->pt_outer = arg_pt->pt_outer;
}
rettv->v_type = VAR_PARTIAL;
rettv->vval.v_partial = pt;
delete('XnestedDone')
enddef
+def Test_nested_closure_funcref()
+ var lines =<< trim END
+ vim9script
+ def Func()
+ var n: number
+ def Nested()
+ ++n
+ enddef
+ Nested()
+ g:result_one = n
+ var Ref = function(Nested)
+ Ref()
+ g:result_two = n
+ enddef
+ Func()
+ END
+ v9.CheckScriptSuccess(lines)
+ assert_equal(1, g:result_one)
+ assert_equal(2, g:result_two)
+ unlet g:result_one g:result_two
+enddef
+
def Test_check_func_arg_types()
var lines =<< trim END
vim9script
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4321,
/**/
4320,
/**/