{
*lvar = *lvp;
lvar->lv_from_outer = 0;
- lvar->lv_loop_idx = get_loop_var_idx(cctx);
+ // If the variable was declared inside a loop set
+ // lvar->lv_loop_idx and lvar->lv_loop_depth.
+ get_loop_var_idx(cctx, idx, lvar);
}
return OK;
}
// recursive call.
if (is_global)
{
- // TODO: loop variable index and count
- r = generate_NEWFUNC(cctx, lambda_name, func_name, 0, 0);
+ r = generate_NEWFUNC(cctx, lambda_name, func_name);
func_name = NULL;
lambda_name = NULL;
}
{
if (lvar->lv_from_outer > 0)
generate_LOADOUTER(cctx, lvar->lv_idx, lvar->lv_from_outer,
- lvar->lv_loop_idx, type);
+ lvar->lv_loop_depth, lvar->lv_loop_idx, type);
else
generate_LOAD(cctx, ISN_LOAD, lvar->lv_idx, NULL, type);
}