patch 8.2.1846: Vim9: block variables are not found in compiled function
Problem: Vim9: variables declared in a local block are not found in
when a function is compiled.
Solution: Look for script variables in sn_all_vars.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 015777e..5c6dbdf 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2962,8 +2962,10 @@
svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data)
+ iptr->isn_arg.script.script_idx;
- smsg("%4d LOADSCRIPT %s from %s", current,
- sv->sv_name, si->sn_name);
+ smsg("%4d LOADSCRIPT %s-%d from %s", current,
+ sv->sv_name,
+ iptr->isn_arg.script.script_idx,
+ si->sn_name);
}
break;
case ISN_LOADS:
@@ -3054,8 +3056,10 @@
svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data)
+ iptr->isn_arg.script.script_idx;
- smsg("%4d STORESCRIPT %s in %s", current,
- sv->sv_name, si->sn_name);
+ smsg("%4d STORESCRIPT %s-%d in %s", current,
+ sv->sv_name,
+ iptr->isn_arg.script.script_idx,
+ si->sn_name);
}
break;
case ISN_STOREOPT: